2012-09-20 30 views
0

我有一個頁面使用ajax加載頁面的各個部分。 每個部分由一個html文件和一個javascript文件組成,該文件爲html的那一點定義事件。使用ajax加載配對的html&js文件並保持順序

我想要做的是指出一個管理文件加載的方法,該方法可以綁定保持兩個文件綁定在一起。

這裏是我試圖使它現在工作的僞代碼,但我不知道是否有更有組織的方式。

僞代碼:(使用jquery)

  1. 循環通過需要加載的HTML/JS文件對列表。
  2. 將一個對象添加到唯一標識這對文件的數組中。該對象最終將保存html和js對象的容器。
  3. 開始加載html。當html返回時,將內容追加到頁面並在數組對象中記錄ID
    • 這很簡單,因爲我直接使用jquery get回調的內容。
  4. 開始加載js。當文件加載時,js執行並更新數組中的對象並引用文件返回值。
    • *這是最難的部分。 jQuery.getScript()在完成時自動執行腳本,所以我不能使用返回值,因爲它已經創建。因爲我不能使用Ajax響應我有js文件已經知道

所以會加入自己的目標,我希望有一些JS LIB已經上市,做之間的一些數據綁定成對的html & js。

此外,我不知道如何構造對象管理器。 js文件中的每個對象將具有相同的事件綁定,當您移動到該部分時會被調用。

對不起,這是一個加載的問題。

回答

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()方法添加多個調用。一旦所有三個結果都將作爲三個響應的數組發送給處理程序(與添加調用的順序相同)。

您可以成對調用您的文件,甚至可以將它們全部打包成一個請求 - 完全取決於您。

希望這會有所幫助!

+0

謝謝。我會看看是否有幫助。 – zeal