2011-11-14 19 views
6

我正在創建一些使用ajax來獲取頁面信息的插件。現在有不同的插件可以完成不同的功能。你可以給AJAX調用添加優先級

所有插件都需要作爲獨立使用,但我也想添加他們可以很好地協同工作的功能。

所有不同的插件都有自己的JavaScript文件和函數。這在HTTP請求方面沒有問題,因爲大多數人都有插件,在網站被deplyed時將所有文件合併爲一個。

-

現在我的問題。正如我所說,不同的插件可以獲得網站的不同部分。例如,發佈數量,用戶推文,用戶統計數據,發佈評論。

現在我可以指定從網站調用此信息的優先級。我不能將它們全部合併爲一個ajax調用,我認爲,因爲它們都是單獨的工作組件。

任何人都知道一個很好的解決辦法,我怎麼能spicify首先得到的意見,在這之後的統計數據,等等,等等

我選擇的JS框架jQuery的。

+1

您必須在Ajax請求 – fliptheweb

+0

使用回調函數你什麼意思。 –

回答

5

一個通用的方法是爲未決的AJAX調用實現優先級隊列。每個插件都會將它們的調用放到隊列中,並在調用時具有相關的優先級,並且AJAX隊列處理器將按照優先級的順序穿過隊列。

這裏是一個jQuery優先級隊列插件的例子:

http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html

而且,這裏有一個已經爲AJAX請求實現:

Sequencing ajax requests

+0

謝謝,我會閱讀槽鏈接。我已經在想一個隊列,但我認爲在實施中存在問題。正如我所說的所有插件可以單獨運行。現在我應該在哪裏定義隊列。我無法在我認爲的所有插件中實現它們。我也不能只在一個隊列。 –

+0

@SaifBechan想到兩件事情,可能是:1)要求插件的用戶先安裝新的AJAX優先隊列插件;或者2)在每個文件中定義隊列功能(您需要自動化,natch ),並進行測試以確定它是否已經創建。 –

+0

好的,我正在研究第二個選項,可以使用什麼類型的隊列的任何建議?我真的不想強迫人們使用'包裝'。如果沒有其他選擇,我會這樣做,但我希望有另一種選擇。謝謝。 –