Rumah > pembangunan bahagian belakang > C++ > Kenapa kawalan C# Webbrowser saya tergantung pada panggilan Ajax, dan bagaimana saya boleh memperbaikinya?

Kenapa kawalan C# Webbrowser saya tergantung pada panggilan Ajax, dan bagaimana saya boleh memperbaikinya?

Linda Hamilton
Lepaskan: 2025-01-30 20:33:13
asal
848 orang telah melayarinya

Why is my C# WebBrowser Control Hanging on AJAX Calls, and How Can I Fix It?

Penyelesaian Masalah AJAX dalam Kawalan Webbrowser C#

Kawalan C#

Kadang -kadang berjuang dengan panggilan Ajax, yang membawa kepada kekecewaan "Permintaan anda sedang diproses" hang. Tingkah laku ini berbeza dengan ketara dari penyemak imbas IE penuh, yang biasanya mengendalikan panggilan ini tanpa masalah. WebBrowser

Penyelesaian ini sering terletak pada mengkonfigurasi kawalan ciri untuk menyelaraskan tingkah laku kawalan

dengan lebih baik daripada contoh IE standard. Secara kritis, menetapkan ciri WebBrowser memastikan keserasian skrip yang lebih baik. "FEATURE_BROWSER_EMULATION"

Berikut adalah fungsi untuk mengubah suai tetapan pendaftaran:

<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);
    }
}</code>
Salin selepas log masuk
Fungsi ini digunakan dalam

: SetBrowserFeatureControl()

<code class="language-csharp">private void SetBrowserFeatureControl()
{
    // Avoid modifying settings in the Visual Studio debugger
    var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
    if (String.Compare(fileName, "devenv.exe", true) == 0 || String.Compare(fileName, "XDesProc.exe", true) == 0) 
        return;

    // Register necessary features (see detailed explanation below for a comprehensive list)
    // ...
}</code>
Salin selepas log masuk
Untuk memastikan perubahan ini digunakan sebelum kawalan

memulakan, hubungi WebBrowser dalam pembina bentuk utama anda: SetBrowserFeatureControl()

<code class="language-csharp">public MainWindow()
{
    SetBrowserFeatureControl();
    InitializeComponent();
    //...
}</code>
Salin selepas log masuk
Untuk senarai lengkap tetapan kawalan ciri yang disyorkan untuk menyelesaikan pelbagai masalah keserasian, rujuk sumber ini:

tetapan kunci kawalan penyemak imbas Ini akan memberikan penyelesaian yang lebih mantap kepada isu gantung yang berkaitan dengan Ajax dalam Kawalan.

Atas ialah kandungan terperinci Kenapa kawalan C# Webbrowser saya tergantung pada panggilan Ajax, dan bagaimana saya boleh memperbaikinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan