إحباط طلبات اياكس قبل إرسال واحد في المرة القادمة؟ (مسج)

StackOverflow https://stackoverflow.com/questions/1810751

  •  05-07-2019
  •  | 
  •  

سؤال

ولدي تقرير في النظام الداخلي لدينا التي يمكن أن تعود في أي مكان من 1 البيانات أيام إلى سنوات كاملة. وبسبب هذا، لا يمكن للتقرير أن تأخذ 0.5 ثانية أو أكثر من 45 ثانية لتوليد كل شيء.

ويتيح التقرير الذي تعديل مجموعة من المرشحات، كل ما عند تعديل، النار قبالة طلب اياكس ببساطة شديدة:

var ax = $.ajax({
    type: "GET",
    url: "/blah",
    data: values,
    success: function(data) { .. }
});

والآن، المشكلة تأتي عندما تكون الدول المستعمل رائعة لنا "يا الانتظار! أريد أن يكون من فبراير، وليس يناير!". ولكن، طلبا يحدث بالفعل منذ يناير كانون الثاني الكثير من البيانات! لذلك، يمكن للمستخدم التبديل الخيار التاريخ إلى فبراير وأستطيع أن أرى وحدة جافا سكريبت وإرسال طلب ثان. الآن لدينا اثنين من الذهاب وانها <م> السباق!

<اقتباس فقرة>   

و/ تقرير /؟ تاريخ_البدء = يناير (لا يزال جاري التحميل ...)

     

و/ تقرير /؟ تاريخ_البدء = فبراير (مهلا، أنا هنا الآن أيضا!)

وبعد ذلك، عادة ما تكون أصغر واحد سيتم تحميل عاجلا، ولكن بعد ذلك الأحمال الأخرى واحد، والإفراط في يكتب واحد لديهم بالفعل .. هم:)

ولقد حاولت استخدام ax.abort() وضعت بعد الإعلان عن متغير ax كما ذكر <لأ href = "https://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery/ 446626 # 446626 "> هنا ولكن لا يبدو أن العمل.

وحتى الآن أنا أتساءل، ما أنا في عداد المفقودين؟ أنا فقط أريد أن أقتل الطلب الحالي (العميل، وأنا أعرف أنني لا تستطيع أن تفعل أي شيء حيال ذلك على جانب الملقم) في أقرب وقت يقوم المستخدم بتغيير بعض الخيارات لذلك أنا لم يكن لديك 2 أو أكثر من طلبات الذهاب في نفس الوقت . وضع async: false ليس خيارا لأنه فقط بتأمين خروج المستخدم.

وشكرا مقدما لمساعدتكم.

هل كانت مفيدة؟

المحلول

ويمكنك إلقاء نظرة على ajaxmanager المساعد.

نصائح أخرى

وأعتقد أن محاولة إجهاض طلب سابق ليست حلا جيدا. ربما يجب عليك استخدام الحل بسيط - لكل اياكس طلب زيادة العداد في جافا سكريبت، وتمريرها إلى رد اياكس. عند حدوث رد الاختيار إذا العداد الاستجابة هي نفس قيمة العداد الحالية. إن لم يكن، ثم تجاهل الرد - أطلق من قبل الحدث انقر فوق عفا عليها الزمن

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top