【问题标题】:Why does anyone use define(['jquery'...], function($...){...} [duplicate]为什么有人使用 define(['jquery'...], function($...){...} [重复]
【发布时间】:2017-08-03 10:20:31
【问题描述】:

我正在一个使用聊天 SDK 的项目中工作。他们确实喜欢在标题中声明很多东西......例如jquery......我以前从未见过jquery被这样对待吗?他们为什么这样做?

【问题讨论】:

标签: jquery


【解决方案1】:

define 方法可能取自 RequireJS 或类似框架,此类文件构成异步模块定义(请参阅http://requirejs.org/docs/whyamd.html)。

模块背后的简单想法是,您只需添加 requirejs 库和小配置(模块名称到 URL 的映射),而不是将所有需要的 JS 文件添加到页面标题。创建自己的模块时,您将使用以下模板:

  define([required module list], function(resolved module list){
       /* module initialization code */
       return /*value used as parameter to function 
                when this module is required by other module */;
    });

它为您解决了多个问题:

  • 不需要全局变量
  • 模块是按需加载的,如果您正在编写大型应用程序,模块会在需要时加载,而不是在文档开始时加载 - 这可以减少 Web 应用程序的启动时间
  • js 文件下载和初始化由 requirejs lib 按照正确的依赖顺序为您完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2011-09-10
    • 2012-02-18
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    相关资源
    最近更新 更多