2010-11-02 24 views
7

我需要在我的頁面上包含一個非現場JavaScript文件,但是我不希望它能夠影響我的網站的性能,以防服務器上的javascript處於關閉狀態或沒有響應。如何確保非現場的JavaScript不會妨礙網站的性能?

我想知道的是,如果它可能與javascript做某種包裝功能,以確保非現場的JavaScript託管的頁面在可接受的時間範圍內響應。

我曾考慮將「延遲」屬性添加到包含javascript的位置,但據我所知,仍然會在網頁的其餘部分加載後離開網站。

如果在JavaScript中無法做到這一點,有沒有什麼好的選擇?

我的網站是C#asp.net。

回答

4

如果非現場JavaScript是自包含的 - 即您的腳本在它們可以正常運行之前都不依賴於它被加載 - 解決方案可能非常簡單。這個例子是使用jQuery,但任何庫(甚至沒有圖書館)是可行的:

​​3210

這將等到整個頁面加載,然後插入一個新<script>塊入空的佔位符DIV,這將觸發瀏覽器嘗試下載腳本。如果遠程服務器的響應速度較慢或處於關閉狀態,腳本仍需要很長時間或超時,但它不會阻止用戶在等待時使用頁面的其餘部分。

0

有趣的問題。你可以用ajax和回調函數做一些超時,如果到那時還沒有加載,你可以採取一些行動。是否有一個特定的原因依賴於另一個網站?將它直接複製到您的網站似乎更爲簡單。

1

將腳本放在頁面底部,至少將其推遲到其他所有內容加載之後。

根據您的需求,您甚至可以加載完全通過XHR一切後(鉤到實際窗口加載事件等待圖像太),然後動態地注入了利用eval()的內容荷蘭國際集團響應文本。您需要在您的網站上使用代理,以避免跨域限制,這可能會破壞您的目的,我不確定。

查看詳情:http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/