DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> defer屬性導致引用JQuery的頁面報“浏覽器無法打開網站xxx,操作被中止”錯誤的解決方法
defer屬性導致引用JQuery的頁面報“浏覽器無法打開網站xxx,操作被中止”錯誤的解決方法
編輯:關於JavaScript     
在一個aspx頁面中使用了JQuery,但當IE6浏覽器打開這個頁面的時候會報“Internet Explorer cannot open the Internet site http://localhost:9001/Index.aspx. Operation aborted”的錯誤,然後就不能正常浏覽此頁面。如果使用IE7或者IE8就沒有此問題。
Operationaborted

將所有的js腳本都使用“<!-- -->”標記注釋掉(這樣雖然會導致問題,但至少可以浏覽此頁面)。逐個檢查後發現了問題所在:

復制代碼 代碼如下:
<script src="Jquery/DatePicker/WdatePicker.js" type="text/javascript"></script>



是這行語句引起的問題,注釋此行後頁面就能正常浏覽了。

查詢發現是引用的js腳本操作了某個尚未載入的頁面元素,這樣就很好解決問題,為<script>腳本添加”defer”屬性之後,頁面可以正常浏覽了。

復制代碼 代碼如下:
<script defer="defer" src="Jquery/DatePicker/WdatePicker.js" type="text/javascript"></script>


參考資料:

Script中的Defer屬性
如果你是一個對系統性能比較關心和在意的人,我想你應該會對Script腳本中的defer屬性感興趣的。
script中的defer屬性默認情況下是false的。按照DHTML編程寶典中的描述,對於Defer屬性是這樣寫的:
Using the attribute at design time can improve the download performance of a page because the browser does not need to parse and execute the script and can continue downloading and parsing the page instead.
也就是說:如果是編寫腳本的時候加入defer屬性,那麼浏覽器在下載腳本的時候就不必立即對其進行處理,而是繼續對頁面進行下載和解析,這樣會提高下載的性能。
這樣的情況有很多種。比如你定義了很多javascript變量,或者在引用文件(.inc)中寫了很多的腳本需要處理,那不妨在這些腳本中加入defer屬性,對性能的提高肯定有所幫助。
舉例如下:
<script language="javascript" defer>
var object = new Object();
....
</script>
因為defer屬性默認是為false的,那麼在這裡<script language="javascript" defer>顯式聲明defer屬性後等同於<script language="javascript" defer=true>
聲明了defer屬性之後,需要判斷是否有別的變量引用了defer腳本塊中的變量,否則的話會導致腳本錯誤的產生。

我抬頭仰望,星星給予仰望者光芒……
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved