Heim > Backend-Entwicklung > C++ > Wie kann ich gefrorene Ajax -Anrufe im C# Webbrowser -Steuerelement beheben?

Wie kann ich gefrorene Ajax -Anrufe im C# Webbrowser -Steuerelement beheben?

Susan Sarandon
Freigeben: 2025-01-30 20:41:13
Original
139 Leute haben es durchsucht

How Can I Fix Frozen Ajax Calls in the C# WebBrowser Control?

c# Webbrowser -Steuerelemente für Ajax -Aufrufprobleme

Viele Entwickler stießen auf eine frustrierende Frage bei der Verwendung des C# Webbrowser -Steuerelements: Nach dem Klicken auf die Schaltfläche im Fenster war die Steuerung eingefroren und die Informationen "Mit Ihrer Anfrage" auf unbestimmte Zeit. Dieses Problem wird durch den Verhaltensunterschied zwischen der Webbrowser -Steuerung und dem vollständigen Browser des Internet Explorer (IE) verursacht.

Um dieses Problem zu lösen, können wir das "Feature Control" verwenden. Dies ist ein Mechanismus, mit dem wir das Verhalten der Webbrowser -Steuerung simulieren können, um dem IE -Browserverhalten näher zu kommen. Eine der wichtigsten Funktionen, die aktiviert werden müssen, ist

, der den Simulationsmodus des Browsers festlegt. Darüber hinaus können wir auch andere Funktionen ermöglichen, um die Kompatibilität wie

, FEATURE_BROWSER_EMULATION und FEATURE_AJAX_CONNECTIONEVENTS zu verbessern. FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS Die folgenden Codefragmente zeigen, wie der Browser -Funktionssteuerschlüssel festgelegt wird:

Durch Einstellen dieser funktionalen Steuerschlüsse sollte die Webbrowser -Steuerung in der Lage sein, zusammenzuarbeiten, um mit dem vollständigen IE -Browser zu arbeiten, um das Problem der vom AJAX -Aufruf eingefrorenen Steuerung zu lösen. Es ist zu beachten, dass das Einstellen dieser Schlüssel keine Administratorberechtigungen erfordert.
<code class="language-csharp">private void SetBrowserFeatureControlKey(string feature, string appName, uint value)
{
    using (var key = Registry.CurrentUser.CreateSubKey(
        String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature), 
        RegistryKeyPermissionCheck.ReadWriteSubTree))
    {
        key.SetValue(appName, (UInt32)value, RegistryValueKind.DWord);
    }
}

private void SetBrowserFeatureControl()
{
    // 在WebBrowser初始化之前实现您自己的功能集并注册它们

    SetBrowserFeatureControlKey("FEATURE_BROWSER_EMULATION", fileName, GetBrowserEmulationMode()); 
    SetBrowserFeatureControlKey("FEATURE_AJAX_CONNECTIONEVENTS", fileName, 1);
    SetBrowserFeatureControlKey("FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", fileName, 1);
    SetBrowserFeatureControlKey("FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS", fileName, 1);
    // 根据需要添加其他功能

    public MainWindow()
    {
        SetBrowserFeatureControl();

        InitializeComponent();
    }
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich gefrorene Ajax -Anrufe im C# Webbrowser -Steuerelement beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage