私はAjaxリクエストにaxios
、レンダリングUIにはreactJS
+ flux
を使用します。私のアプリでは、第3のサイドタイムライン(reactJSコンポーネント)があります。マウスのスクロールでタイムラインを管理できます。 Appは、スクロールイベントの後に実際のデータに対してajaxリクエストを送信します。サーバーでの要求の処理が次のスクロールイベントよりも遅くなる可能性がある問題。この場合、アプリはユーザーがさらにスクロールするため、既に非推奨となっている複数の(通常は2〜3回)リクエストを持つことができます。新しいデータのタイムラインを受信するたびに再描画が開始されるため、問題になります。 (これは反応するためです)+このため、ユーザーはタイムラインの動きを何度も前後に見ています。この問題を解決する最も簡単な方法は、それはちょうどjQuery
のように前のajaxリクエストを中止します。たとえば、次のようにAxisでajaxリクエストをキャンセル/中止する方法
$(document).ready(
var xhr;
var fn = function(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
xhr = $.ajax({
url: 'ajax/progress.ftl',
success: function(data) {
//do something
}
});
};
var interval = setInterval(fn, 500);
);
がどのようにaxios
でリクエストを中断/中止するには?
[AJAX要求に耳を傾け、それを停止する方法reactJS]の可能な重複(http://stackoverflow.com/questions/37771305/reactjs-how-to-stop-it-listening-to-ajax-request ) – Gintoki
あなたのリンクは私にこの問題を解決するのを助けましたが、私は依然としてリクエストをキャンセルし、それを聞くのをやめています... –