我正在編寫一個JavaScript小部件,該小部件旨在用於其他網站,並從我自己的網站加載其他腳本文件(這基本上意味着由於跨域限制而沒有XHR)。現在我想正常處理故障 - 如果一個腳本無法加載,我想從備用服務器加載腳本。如何中止從JavaScript加載外部HTML資源?
我設法處理服務器故障,其中第一個服務器返回一個錯誤,但我也想處理超時 - 如果第一臺服務器花費太多時間來響應我想中止負載並切換到備用服務器。
我遇到的問題是,我可以設置一個超時來觸發切換到備用服務器的方法,但是備用服務器的腳本不會成功加載,直到瀏覽器本身在原始請求中超時 - 這對我的需求來說太長了。
我希望能夠在加載第一個<腳本標記時中止加載並添加指向備用服務器的第二個<腳本標記。
我已經嘗試將原始腳本的src屬性設置爲null,甚至使用removeNode()從HEAD元素中刪除標記,但沒有任何效果。
這一切都在Firefox上嘗試 - 我還沒有嘗試過IE,但解決方案必須在兩者上都能正常工作。我很樂意聽到任何建議。
我想加載第二個腳本來自同一臺服務器(無論如何 - 同一主機名 - 它的負載平衡,所以它可能是一個不同的服務器)。這一切都發生在DOMReady和HEAD元素之後,所以它不會延遲頁面渲染。BTW「推遲」僅在IE上受支持。 – Guss 2009-03-04 00:34:32