首页 > 后端开发 > C++ > 为什么我的C#WebBrowser控件在Ajax呼叫期间悬挂,我该如何修复?

为什么我的C#WebBrowser控件在Ajax呼叫期间悬挂,我该如何修复?

Susan Sarandon
发布: 2025-01-30 20:26:09
原创
975 人浏览过

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>实现特征控制(注册表修改) 以下代码段演示了如何实现功能控制而无需管理员特权:>

>最佳功能设置
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);
    }
}
登录后复制

>基于测试,建议使用这些功能控制设置,以增强 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板