最近學校在做校務評鑑工作,發現每次在用IE開啟評鑑網頁中的總務發展總會出現問題(FireFox則不會),後來發現問題是出現程式碼與IE之間的衝突,為何只有總務發展會發生呢?因為建立了太多子項目了。
解決方式有二:
1、建議建立選單時不要超過二層
2、利用以下微軟所建議的方式解決。(以下資料轉錄自Micrsoft技術支援文章編號: 175500 )http://support.microsoft.com/kb/175500/zh-tw
錯誤訊息:「這個網頁的指令碼造成 Internet Explorer 執行速度緩慢」
結論
其他相關資訊
Internet Explorer 4.0、5.0、6、7 和 8 有相同的訊息方塊,如下:
這個機制允許使用者中止不正常 (會進入無止盡迴圈或是執行緩慢) 的指令碼。
在 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、5.0、6、7 或 8 的逾時值,請前往〈 為我修正此問題 〉一節。如果您要自行修正這個問題,請前往<讓我自行修正此問題>一節。
為我修正此問題
如果要自動修正此問題,請按一下 [修正此問題] 按鈕或連結。按一下 [檔案下載] 對話方塊中的 [執行],並依照 Fix it 精靈中的步驟執行。
Microsoft Fix it 50403
注意
- 此精靈只適用於英文版本。不過,自動修正程式也適用於 Windows 的其他語言版本。
- 如果您不在發生問題的電腦上,則可將 Fix it 解決方案儲存至快閃磁碟機或 CD,然後在發生問題的電腦上執行。
然後請前往<這樣是否已修正問題?>一節。
讓我自行修正此問題
重要這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
若要變更 Internet Explorer 4.0、5.0、6、7 或 8 的逾時值,請依照下列步驟執行:
- 使用「登錄編輯程式」,如 Regedt32.exe,開啟此機碼:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles
注意如果
Styles機碼不存在,請建立一個名為
Styles的新機碼。
- 在此機碼下建立一個新的 DWORD 值 (名為 “MaxScriptStatements”),並將值設定為想要的程式碼陳述式數目。如果您不確定要如何設定該值,您可以將他設定為 DWORD 值 0xFFFFFFFF 來完全避開對話框。
根據預設,該機碼不存在。如果尚未新增該機碼,在 Internet Explorer 4 或更新的版本中,逾時對話框的預設臨界值限制為 5,000,000 個陳述式。
由於 Internet Explorer 4.0、5.0、6、7 和 8 的逾時值是根據程式碼陳述式的執行數決定的,因此在 ActiveX 控制項或資料庫存取延遲時,將不會顯示逾時對話框。但仍會偵測程式碼中無止盡的迴圈。