用javascript创建消息模型的最佳方法是什么

What is the best approach to creating message models in javascript?

本文关键字:最佳 方法 是什么 模型 javascript 创建 消息      更新时间:2023-09-26

我有一个关于javascript最佳实践的问题。我正在尝试用javascript创建消息模型。意味着我的整个应用程序消息(popover消息、工具提示消息、错误消息、警告消息等)应该在一个地方。为此,我决定用javascript创建一个匿名对象,如下所示:

var Message = {
    ForFirstView: {
        Popover: {
            FirstPopover: {
                Message: function (param) {
                    return 'Message with' + param;
                }
            },
            SecondPopover: {
                Message: function (param) {
                    return 'Message with' + param;
                }
            }
            ..... 
            ........
        },
        Tooltip: {
            FirstName: {
                Message: function (param) {
                    return 'Your first name is this with ' + param;
                }
            },
            LastName: {
                Message: function (param) {
                    return 'Your last name is this with ' + param;
                }
            },
            Email: {
                Message: function (param) {
                    return 'Your email is this with ' + param;
                }
            }
            ......
            .........
        }
    },
    ForSecondView: {
        FileTypeNotSupported: function (file) {
            return 'This ' + file + ' not supported.'
        },
        Camera: {
            Stopped: "Your web cam stopped."
        }
        .....
        ......
    }
    ............
    ..............
};

现在,如果我想在第一个视图的第一个弹出窗口中显示消息,我可以这样做:

Message.ForFirstView.Popover.FirstPopover.Message('anyvalue');

这样,我所有的消息都会出现在一个地方,所以以后的编辑和更新变得很容易。

但我想知道你对这个消息模型的建议。或者,如果有其他更好的方法来处理这件事,请告诉我。

这个问题出现在我的脑海中,因为当我为这个消息模型创建文档时(使用yuidoc),我不知道如何对此进行文档记录(因为多级层次结构)。因此,如果这个模型足够好,可以继续使用,请建议我更好地记录这个消息模型的方法。

谢谢。

你所做的是一件好事。有这样的组织总是很好的。你可能会考虑使用较短的名称,因为从长远来看,这更容易、更快。当我开始构建一个新的前端时,我至少会有几个这样的文件,但不仅仅是函数,还有可能对项目有用的标量、常量和关联数组。然后,我将每个文件附加到web应用程序的一个全局命名空间中。例如,我会有MyApp.Messageing、MyApp.Config和MyApp.DateTime等

你提到了"模型",所以我想说,有很多前端MVC库,如Backbone、Ember、Knockout等,它们为你提供了一个可以在其中构建的框架——通过使用它们的方法,你可以利用这些库所提供的功能,同时保持代码的有序性。然而,这些图书馆有一个(有时是陡峭的)学习曲线,它们当然不是构建一个伟大前端的必要条件。

我认为您可能会更多地研究如何编写面向对象的javascript。jQuery UI Widget Factory是创建消息对象的一种简单方法,例如,您可以使用这些消息对象,并将其用于网站可能需要的各种类型的弹出窗口、对话框和警报。或者coffeescript允许您编写类而不是原型,您可能会发现这更具吸引力。你可以将上面的消息模型与一些对话框/窗口/模式类结合使用,这样你的网络应用程序就有了一个强大、有组织的消息系统。