1

我有一个关于 javascript 最佳实践的问题。我正在尝试在 javascript中创建消息模型。意味着我的整个应用程序消息(弹出消息、工具提示消息、错误消息、警告消息等)应该在一个地方。所以为此我决定在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)创建文档时,我无法弄清楚如何记录这个(因为多级层次结构)。因此,如果此模型足以继续,请建议我为该消息模型提供更好的文档的方法。

谢谢。

4

1 回答 1

1

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

你提到“模型”,所以我会说,有大量的前端 MVC 库,例如 Backbone、Ember、Knockout 等,它们为你提供了一个可以在其中构建的框架——通过使用它们的方法,你可以利用这些库必须提供,同时保持您的代码井井有条。然而,这些库有一个(有时很陡峭的)学习曲线,而且它们当然不是构建一个好的前端所必需的。

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

于 2013-08-21T08:09:57.253 回答