錯誤訊息:「這個網頁的指令碼造成 Internet Explorer 執行速度緩慢」

文章翻譯 文章翻譯
文章編號: 175500 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

由於部份指令碼執行時可能要花費很長一段時間,因此 Internet Explorer 會出現提示,讓使用者決定是否要繼續執行緩慢的指令碼。有些測試和基準可能會使用需長時間執行的指令碼,因此,您可能會想延長訊息方塊出現前的經過時間。在 Internet Explorer 中,特定用戶端電腦上的指令碼逾時值可以透過修改登錄項目來進行變更。

其他相關資訊

有時候,網頁會包含執行需要花費超長時間的指令碼。如果網頁正在處理 ActiveX 控制項的指令碼以進行大型檔案傳輸,或是大型資料庫查詢,這常會明顯地造成長延遲。Internet Explorer 3.02 偵測到長延遲並出現以下內容的對話方塊提示使用者:
此網頁中含有花費異常長時間才能完成的指令碼。若要立即結束此指令碼,請按「取消」。
Internet Explorer 4.0 到 8 版本有相同的訊息方塊,如下所示:
這個畫面上有一個指令碼致使 Internet Explorer 執行速度變慢。如果繼續執行,您的電腦將變成沒有反應。要停止執行這個指令碼?
這個機制允許使用者停止不正常 (會進入無止盡迴圈或是執行緩慢) 的指令碼。

在 Windows 95 的機器上執行 Internet Explorer 3.02 會出現此訊息方塊。3.02 版的瀏覽器會特別查看程式碼執行緒是否在最近的五秒內送出任何 Windows 訊息。Internet Explorer 3.02 的逾時期間無法覆寫。如果您正在使用 ActiveX 控制項和長時間凍結的作業,則應針對該 ActiveX 控制項採用事件機制並將控制權交還給呼叫端,或是每隔五秒鐘呼叫 PeekMessage 一次來重設逾時。

Internet Explorer 4.0 和更新的版本,逾時值不再是根據 Windows 訊息的固定值。 Internet Explorer 會針對目前頁面,使用程式碼引擎來追蹤執行的程式碼陳述式總數,並在每次新的程式碼開始執行時進行重設,例如從逾時值或從事件處理常式來進行重設。Internet Explorer 會在該值超出臨界值總量時,出現「長時間執行的程式碼」對話框。Internet Explorer 並不會檢查每個指示,查看其是否超出限制。程式碼引擎會定期輪詢 Internet Explorer 的陳述式執行數,且 Internet Explorer 會檢查其是否超出限制。由於這樣的機制,因此若在程式碼引擎輪詢 Internet Explorer 之前全部的程式碼就已執行完成,很有可能執行數就會超出預設限制而沒有出現對話框。

如果要我們為您變更 Internet Explorer 4.0 到 8 版本的逾時值,請前往<為我修正此問題>一節。如果您要自行修正這個問題,請前往<讓我自行修正此問題>一節。

為我修正此問題

如果要自動修正此問題,請按一下 [Fix it] 按鈕或連結、按一下 [檔案下載] 對話方塊中的 [執行],然後依照 Fix it 精靈中的步驟執行。
摺疊此圖像展開此圖像
assets fixit1
修正這個問題
Microsoft Fix it 50403
摺疊此圖像展開此圖像
assets fixit2

注意
  • 此精靈只適用於英文版本。不過,自動修正程式也適用於 Windows 的其他語言版本。
  • 如果您不在發生問題的電腦上,則可將 Fix it 解決方案儲存至快閃磁碟機或 CD,然後在發生問題的電腦上執行該解決方案。

然後請前往<這樣是否已修正問題?>一節。



讓我自行修正此問題

重要 這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756 如何在 Windows XP 和 Windows Server 2003 中備份、編輯及還原登錄


若要變更 Internet Explorer 4.0 到 8 版本中的這個逾時值,請依照下列步驟執行:
  1. 使用「登錄編輯程式」,如 Regedt32.exe,開啟此機碼:
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles

    注意 如果 Styles 機碼不存在,請建立一個名為 Styles 的新機碼。
  2. 在此機碼下建立一個新的 DWORD 值 (名為 "MaxScriptStatements"),並將值設定為想要的程式碼陳述式數目。如果您不確定要如何設定該值,您可以將它設定為 DWORD 值 0xFFFFFFFF 來避開對話方塊。
預設情況下,機碼不存在。如果尚未新增該機碼,Internet Explorer 4 和更新版本中逾時對話方塊的預設臨界值限制為 5,000,000 個陳述式。

由於 Internet Explorer 4.0 到 8 版本的逾時值是根據程式碼陳述式的執行數決定的,因此在 ActiveX 控制項或資料庫存取延遲時,將不會顯示逾時對話方塊。但仍會偵測程式碼中無止盡的迴圈。

這樣是否已修正問題?

  • 檢查該問題是否已修正。如果問題已修正,您便已完成本節。如果問題尚未修正,則可連絡技術支援服務
  • 我們非常感謝您提供意見反應。如果要提供意見反應,或報告此解決方案的任何問題,請在「為我修正此問題」部落格 (英文) 中留下您的意見,或者傳送電子郵件給我們。

?考

如需有關 Internet Explorer 8 的速度、安全性和可適性的詳細資訊,請造訪下列 Microsoft 網站:
http://windows.microsoft.com/zh-tw/internet-explorer/download-ie (英文)

屬性

文章編號: 175500 - 上次校閱: 2013年12月6日 - 版次: 7.0
這篇文章中的資訊適用於:
  • Windows Internet Explorer 8
  • Windows Internet Explorer 7
  • Microsoft Internet Explorer 6.0
關鍵字:?
kbfixme kbmsifixme kbcode kbFAQ kbhowto kbscript KB175500
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com