Ik heb een Ajax request opgebouwd, deze word herhaaldelijk uitgevoerd en wil nog wel eens zichzelf (door luser input) opnieuw uitvoeren voordat de vorige request zich heeft voldaan.
Nu heb ik er voor kunnen zorgen dat ik de vorige Ajax call abort en dan pas de nieuwe plaats, geen probleem en werkt nu als een zonnetje. Maar, er zit toch nog een glitch in, de browser geeft een dikke error "Failed to load resource" (Chrome). Op zich logisch, er word tenslotte toch een request afgekapt voordat hij resultaat ontvangt. Nu heb ik al geprobeerd om deze in een try / catch blok te zetten, maar dit vangt de error niet af.
Ik heb een vermoeden dat deze error niet echt af te vangen is, het lijkt er op dat het op browser niveau gebeurd. Maar toch vind ik het dan vreemd dat deze functie gebruikt kan worden? Enige ideeën?
Nu heb ik er voor kunnen zorgen dat ik de vorige Ajax call abort en dan pas de nieuwe plaats, geen probleem en werkt nu als een zonnetje. Maar, er zit toch nog een glitch in, de browser geeft een dikke error "Failed to load resource" (Chrome). Op zich logisch, er word tenslotte toch een request afgekapt voordat hij resultaat ontvangt. Nu heb ik al geprobeerd om deze in een try / catch blok te zetten, maar dit vangt de error niet af.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| // Code aan het begin van het event function onFooEvent () { if (ajaxCall != null) { if (ajaxActive == true) { ajaxCall.abort(); // de abort, die prima werkt, maar een dikke error geeft... Ook in een Try/catch. } } ajaxActive = false; // .................. // verderop in het event ajaxActive = true; ajaxCall = $.ajax({ type: 'POST', dataType: 'json', url: path, success: ajax_succes, error: ajax_error }); } // Callbacks function ajax_succes(data) { ajaxActive = false; // ..... verdere afhandeling } function ajax_error(data) { ajaxActive = false; // ..... verdere afhandeling } |
Ik heb een vermoeden dat deze error niet echt af te vangen is, het lijkt er op dat het op browser niveau gebeurd. Maar toch vind ik het dan vreemd dat deze functie gebruikt kan worden? Enige ideeën?