Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Permintaan AJAX Serentak Saya Tidak Berjalan Selari?

Mengapa Permintaan AJAX Serentak Saya Tidak Berjalan Selari?

Barbara Streisand
Barbara Streisandasal
2024-10-29 19:25:02616semak imbas

Why Are My Simultaneous AJAX Requests Not Running in Parallel?

Permintaan AJAX Serentak Gagal Berjalan Selari

Seseorang mungkin menghadapi masalah di mana dua permintaan AJAX, satu untuk mengeksport data ke fail XLSX dan satu lagi untuk memaparkan kemas kini kemajuan, gagal dijalankan serentak. Permintaan pertama, yang memakan masa, nampaknya menyekat kemas kini kemajuan daripada dipaparkan.

Penjelasan:

Tingkah laku ini boleh dikaitkan dengan penyekatan sesi. PHP menyimpan data sesi dalam fail secara lalai. Apabila sesi dimulakan dengan session_start(), fail sesi dibuka untuk menulis dan dikunci untuk mengelakkan pengubahsuaian serentak. Akibatnya, sebarang permintaan PHP didayakan sesi berikutnya mesti menunggu permintaan sebelumnya untuk melepaskan kunci sebelum meneruskan.

Penyelesaian:

Untuk menyelesaikan isu ini, satu boleh sama ada mengkonfigurasi PHP untuk menggunakan kaedah storan sesi alternatif (cth., pangkalan data, memcached) atau menutup sesi tulis secara eksplisit selepas menulis data kepadanya. Pendekatan terakhir boleh dicapai menggunakan fungsi session_write_close(). Berikut ialah contoh:

<code class="php"><?php
    session_start(); // start session

    // Write data to session (if necessary)

    session_write_close(); // close session file, releasing lock

    // Read or use session data as needed</code>

Dengan menutup sesi tulis, seseorang boleh membuka kunci fail sesi dan membenarkan permintaan AJAX seterusnya diteruskan tanpa menunggu permintaan pertama selesai.

Atas ialah kandungan terperinci Mengapa Permintaan AJAX Serentak Saya Tidak Berjalan Selari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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