إخطار الخادم (xmlhttprequest؟) في حدث OnUnload؟
-
28-09-2019 - |
سؤال
هل من الممكن إخطار خادم (تقديم طلب HTTP واحد مع القليل من البيانات ، والاستجابة غير مهمة) عندما يترك العميل الصفحة؟
أنا في الواقع أستخدم تطبيق Python Tornado Comet مع JavaScript الحفاظ باستمرار على اتصال الطلب إلى الخادم (الذي يتم إغلاقه وإعادة فتحه عند الحدث. استنادًا إلى هذا: https://launchpad.net/eftw).
لم أجد طريقة سهلة لتصحيح هذا (مع Firebug ، على وجه الخصوص). وهذا يجعلها مشكلة كبيرة.
أوه ، والرمز الفعلي (لأنه قابل للاستخدام إلى حد ما بالفعل على أي حال): http://bazaar.launchpad.net/~hoverhell/xftw/trunk/files
المحلول
لا يمكنك القيام بذلك في موثوق بها طريقة ، اعتمادًا على المتصفح والكمون ، من المحتمل أن يتم قتل XMLHTTPrequest قبل أن ينتهي بالفعل.
يريد صانعو المستعرض (بشكل صحيح ، IMO) تقديم الصفحة التالية في أسرع وقت ممكن. ال onbeforeunload
و onunload
هي أحداث التنظيف التي تهدف إلى التخلص بسرعة من أي متغيرات متبقية ، لا يُقصد بها الانتظار ... وبالتالي فإن المتصفح لا. نظرًا لأن جمع القمامة في المتصفحات الأحدث قد تحسن أيضًا بشكل كبير ، فإن المتصفح لديه سبب أقل لانتظار هذه الأحداث.
يمكنك إرسال طلب في window.onbeforeunload
الحدث ... ولكن هل سيصل إلى الخادم؟ يمكن.