自动加载Javascript

我有一个有趣的概念,我正在研究和查看,通过自动加载JavaScript的各种堆栈问题。 我想使用第三方工具,除了表单jquery,所以我想我会自己角色。 我的概念是:

var scripts = { 'name' : 'path/to/script_dir/' // Load all scripts in this file. } requireScripts(scripts); // Requires all scripts // Call your classes, methods, objects and so on .... 

requireScript()函数的工作方式如下:

 function requireScript(hash){ $.each(hash, function(key, value)){ $.ajax({ url: value, dataType: "script", async: false, error: function () { throw new Error("Could not load script " + script); } }); }); } 

注意:以上只是一个概念,我认为它不会起作用。

以上将允许您加载SPECIFIC脚本。 所以实质上你的哈希键值是'name' : 'path/to/specific/script' 。 这个问题是你的哈希会变得相当大……

我遇到的另一个问题是,如果我将其简化为“php pear命名标准”,那么,正如趋势似乎是 – 我们将创建一个类,它将以其位置命名:

var some_folder_name_class = function(){}

将自动加载器翻译为: some/folder/name/class.js然后以这种方式加载。

总结一下,通过滚动我自己的“require”方法,有两种加载我正在查看的javascript文件的方法。 一种是通过上面实现的散列思想加载javascript文件的目录。 (所提供的代码样本将如何更改和修复此哈希值……我不认为它甚至可以加载单个文件)

要么

你刚才做的:

new some_class_name()并有一个全局函数侦听新单词,根据类的名称找到你试图调用的文件并加载它,你永远不必担心 – 只要遵循“梨命名标准” “在类和文件夹结构中,将加载您的js文件。

可以采取任何一种方法吗? 还是我梦想成真?

我看到很多框架都做了一堆require('/path/to/script') ,如果我可以自己require('/path/to/script')自己的自动加载器,只是允许我加载一个js文件的目录,甚至可以让它听取new在课堂实例化之前,我可以让我的生活更轻松。

您是否考虑过使用requirejs和Lazy加载。

http://www.joezimjs.com/javascript/lazy-loading-javascript-with-requirejs/

这是样本版本:

  1. 你可以在这里下载。

  2. 该示例基于此文件夹结构:

    上市

    • 的index.html
    • 脚本

      • app.js
      • LIB

        ** jquery-1.10.2.js

        ** require.js

3。 来自代码:

HTML

 ` Sample Test` 

 `

My Sample Project

`

应用程序配置app.js.

 requirejs.config({ baseUrl: 'scripts', paths: { app: 'app', jquery: 'lib/jquery-1.10.2' //your libraries/modules definitions } }); // Start the main app logic. loading jquery module require(['jquery'], function ($) { $(document).on('ready',function(){ $('#someDiv').html('Hello World'); }); }); 

jQuery-only选项

如果您正在寻找仅限jQuery的解决方案,请查看jQuery.getScript() 。 它将是处理问题的脚本加载部分的一个很好的候选者。 然后你可以在它周围编写一个非常小的包装器来加载所有脚本 – 就像你上面写的那样:

 var loadScripts = function(scripts) { $.each(scripts, function(name, path) { jQuery.getScript("/root/path/" + path + ".js"); }) } 

如果您对此方法的更多信息感兴趣,请阅读 David Walsh 撰写的这篇文章 。

其他好的图书馆

我强烈建议您查看当前批量的脚本加载库。 我想你会对那里的东西感到惊喜。 此外,他们还拥有出色的社区支持和文档。 RequireJS似乎是领跑者,但David Walsh在curl.js和LABjs上发表了很多文章。