[英]How to reliably load required JavaScript files?
由於互聯網連接問題,我遇到了一些問題,一些必需的JavaScript文件沒有加載。 Body onload事件被觸發,但頁面邏輯所需的類不存在。
還有一件事,我想解決的問題不在於網站,而是在沒有任何圖像或CSS文件的Web應用程序中。 想象一下在iframe中運行的JavaScript代碼。 因此,我只有腳本問題。
以下是我的想法如何解決這個問題,如果我錯了,請評論/糾正我:
還有其他想法嗎?
如果“重試”腳本無法獲取所需的依賴項,則重定向到站點的“無腳本”版本(如果有)。 或者嘗試使用優雅降級的頁面,因此即使所有步驟都失敗,該站點仍然可用。
1 - 正確但仔細檢查來自不同文件的JavaScript函數是否彼此不重疊。
2 - 正確 - 這應該始終打開。
3 - 正確但瀏覽器仍將嘗試從服務器獲取HTTP 304: Not Modified
代碼。
4 - 正確,考慮在嘗試1次或2次失敗后回noscript
網站的noscript
版本(5次太多)。
我個人認為嘗試重做瀏覽器的邏輯並不值得。 如果頁面中的圖像無法加載怎么辦? 如果主頁面沒有加載怎么辦? 如果用戶有互聯網連接問題,他們需要修復這些互聯網連接問題。 很多事情在他們做之前不會可靠地運作。
那么,你是否要檢查你的頁面顯示的每個圖像是否正確加載,如果它沒有加載,你是否會手動嘗試重新加載它們?
在我看來,將一些內聯JS用於檢測外部JS文件是否未加載可能是值得的(所有你需要做的就是檢查外部JS文件中是否存在一個全局變量或頂級函數)然后告訴用戶他們有互聯網連接問題,他們應該解決這些問題,然后重新加載網站。
您的積分對腳本加載有效,但您還必須考慮網站使用情況。
如果由於某種原因未加載腳本,則該站點仍必須完全可用且可導航。 用戶體驗優先於其他所有事物。
應該在瀏覽器加載和可視化網站界面后加載腳本,並且應該包含增強用戶體驗的代碼,而不是您必須完全依賴的內容。
這種方式即使連接速度很慢,我仍然可以閱讀內容並選擇更改頁面或轉到其他位置,而不是顯示空白頁面或僅顯示標題的頁面。
這對我來說是最重要的一點。
另外,你確定重試方法嗎? 它會導致對服務器的更多請求。 如果連接緩慢或滯后,那么最好不要運行腳本,特別是考慮到用戶可能在頁面上花費的時間很少,只需要快速閱讀內容。 此外,在連接速度很慢的情況下,您會為超時設置多長時間? 如果在超時觸發時下載腳本並再次重試,該怎么辦? 如何有效地確定時間量和連接的“緩慢”?
編輯
你試過head.js嗎? 是一個插件旨在盡可能快的sripts加載,也許它會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.