javascript - 在 JavaScript 中创建消息模型的最佳方法是什么?

标签 javascript jquery

我有一个关于 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."
        }
        .....
        ......
    }
    ............
    ..............
};

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

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

这样我的所有消息都会集中到一个地方,因此将来的编辑和更新变得很容易。

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

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

谢谢。

最佳答案

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

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

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

关于javascript - 在 JavaScript 中创建消息模型的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18351632/

相关文章:

javascript递归函数不能完全工作

javascript - 窗口最小化时,计时器 JavaScript 在 Chrome 和 Mozilla 中不运行

javascript - 遍历包含数组的对象

jquery - 使用 JQuery 查找和计算复选框的数量

jquery - 使用 ajax 和 CSS3 动画动态加载 wordpress 内容

javascript - GDrive 分段上传 jQuery

javascript - 可以缓存 Google Maps API javascript 吗?

javascript - X轴范围根据隐藏的Series变化

javascript - 按钮无法点击?

jquery - 如何在 <input type ='file' multiple> 上使用 jquery 访问每个路径/文件名