首頁 >後端開發 >C++ >為什麼我的C#WebBrowser控件在Ajax呼叫期間懸掛,我該如何修復?

為什麼我的C#WebBrowser控件在Ajax呼叫期間懸掛,我該如何修復?

Susan Sarandon
Susan Sarandon原創
2025-01-30 20:26:09922瀏覽

Why Does My C# WebBrowser Control Hang During Ajax Calls, and How Can I Fix It?

>故障排除C#WebBrowser控制掛斷,ajax

與完整的Internet Explorer實例不同,C#

控制在Ajax呼叫中經常會凍結。本文探討了一個針對腳本兼容性的解決方案。 WebBrowser

解決腳本兼容性問題

問題的根通常在於設置在這裡是關鍵。 WebBrowser> FEATURE_BROWSER_EMULATION>實現特徵控制(註冊表修改) 以下代碼段演示瞭如何實現功能控製而無需管理員特權:>

>最佳功能設置
<code class="language-csharp">private void SetBrowserFeatureControlKey(string feature, string appName, uint value)
{
    using (var key = Registry.CurrentUser.CreateSubKey(
        $@"Software\Microsoft\Internet Explorer\Main\FeatureControl\{feature}", 
        RegistryKeyPermissionCheck.ReadWriteSubTree))
    {
        key.SetValue(appName, (uint)value, RegistryValueKind.DWord);
    }
}</code>

>基於測試,建議使用這些功能控制設置,以增強 Control中的AJAX性能:>

應用程序步驟WebBrowser

<code>FEATURE_BROWSER_EMULATION = 11000
FEATURE_AJAX_CONNECTIONEVENTS = 1
FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION = 1
FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS = 1
FEATURE_DOMSTORAGE = 1
FEATURE_GPU_RENDERING = 1
FEATURE_IVIEWOBJECTDRAW_DMLT9_WITH_GDI = 0
FEATURE_DISABLE_LEGACY_COMPRESSION = 1
FEATURE_LOCALMACHINE_LOCKDOWN = 0
FEATURE_BLOCK_LMZ_OBJECT = 0
FEATURE_BLOCK_LMZ_SCRIPT = 0
FEATURE_DISABLE_NAVIGATION_SOUNDS = 1
FEATURE_SCRIPTURL_MITIGATION = 1
FEATURE_SPELLCHECKING = 0
FEATURE_STATUS_BAR_THROTTLING = 1
FEATURE_TABBED_BROWSING = 1
FEATURE_VALIDATE_NAVIGATE_URL = 1
FEATURE_WEBOC_DOCUMENT_ZOOM = 1
FEATURE_WEBOC_POPUPMANAGEMENT = 0
FEATURE_WEBOC_MOVESIZECHILD = 1
FEATURE_ADDON_MANAGEMENT = 0
FEATURE_WEBSOCKET = 1
FEATURE_WINDOW_RESTRICTIONS = 0
FEATURE_XMLHTTP = 1</code>
創建一種結合這些設置的方法(類似於提供的示例)。 至關重要的是,在

>之前調用此方法> 的控件是初始化的,通常在表單的構造函數內。 這樣可以確保在提出任何AJAX請求之前應用設置。

>

通過正確配置功能控件,您可以顯著提高>

以上是為什麼我的C#WebBrowser控件在Ajax呼叫期間懸掛,我該如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn