使用ajax加载配对的html& js文件和保持顺序

时间:2012-09-20 01:02:26

标签: javascript jquery javascript-events

我有一个页面,它使用ajax加载页面的各个部分。 每个部分都包含一个html文件和一个javascript文件,它定义了那些html的事件。

我想要做的是设计一种管理文件加载的方法,可以绑定两个文件绑定在一起。

以下是我如何尝试使其正常工作的伪代码,但我不知道是否有更有条理的方式。

伪代码:(使用jquery)

  1. 循环显示需要加载的html / js文件对列表。
  2. 将对象添加到一个唯一标识该对文件的数组中。该对象最终将保存html和js对象的容器
  3. 开始加载html。当html返回时,将内容附加到页面并在数组对象中记录id
    • 这很简单,因为我直接使用jquery get callback的内容。
  4. 开始加载js。加载文件时,js执行并更新数组中的对象,并引用文件返回值。
    • *这是困难的部分。 jQuery.getScript()在脚本完成时自动执行,所以我不能使用返回值,因为它已经创建了。由于我不能使用ajax响应,我必须让js文件已经知道它将自己添加到的对象
  5. 所以,我希望有一些已经可用的js lib可以在html和amp;之间进行一些数据绑定。 JS。

    另外,我不确定如何构建对象管理器。 js文件中的每个对象将具有与移动到该部分时调用的相同事件绑定。

    对不起,这是一个有问题的问题。

1 个答案:

答案 0 :(得分:0)

我认为我的AJAX库可能有所帮助:

http://depressedpress.com/javascript-extensions/dp_ajax/

最有用的功能之一是能够使用多个“调用”(单个HTTP调用)定义单个“请求”(触发单个处理程序)。因此,您可以定义单个请求以包含对脚本的调用和对HTML的第二次调用。当两个调用都完成时,将调用已定义的处理程序并以正确的顺序将结果传递给它。

用于处理请求的请求池可以使用多个后台对象进行实例化(允许多线程),这样当请求在调用处理程序之前获取所有数据时,它们不会被迫通过单线程浪费时间(尽管你也可以这样做。

以下是一个如何使用它的简单示例:

    // The handler function
function AddUp(Nums) { alert(Nums[1] + Nums[2] + Nums[3]) };

    // Create the pool
myPool = DP_AJAX.createPool();

    // Create the request
myRequest = DP_AJAX.createRequest(AddUp);

    // Add the calls to the request
myRequest.addCall("GET", "http://www.mysite.com/Add.htm", [5,10]);
myRequest.addCall("GET", "http://www.mysite.com/Add.htm", [4,6]);
myRequest.addCall("GET", "http://www.mysite.com/Add.htm", [7,13]);

    // Add the request to the pool
myPool.addRequest(myRequest);

“myRequest”定义了处理程序。 addCall()方法添加多个调用。一旦所有这三个结果都将作为三个响应的数组发送到处理程序(按照添加调用的顺序)。

您可以成对调用您的文件,甚至可以将它们全部捆绑到一个请求中 - 由您决定。

希望这有帮助!