2017-10-07 7 views
0

私はAjax関数を使用しています。関数は3秒ごとにデータベースからユーザーを取得する必要があります。それはうまく動作します。実際の問題は3秒ごとに機能がリフレッシュされるため、誰かが(マウスで)選択した場合、選択が3秒後に削除されます。Ajax自動マウス削除の選択

これを解決するにはどうすればよいですか?

簡単な例:

ajax_load(); 

setInterval(function(){ 
    ajax_load(); 

}, 3000) 

答えて

0

解決策は以下のとおりです。

  1. ユーザーが自分の選択を変更すると、安全な場所(元に選択をキャッシュ:HTML部分の外側のsessionStorageまたは非表示の入力変更された)
  2. コンテンツが再レンダリングされたら、キャッシュした場所から選択内容を復元します。

擬似コード:

var ajax_load = function(callback){ 
    $.ajax("request-url", { 
     success: function(data) { 
     appendHTMLContent(); 
     if(callback) callback(); 
     } 
    }); 
}; 

ajax_load(); 

[change-event-example].change(function(){ 
    cacheUserSelection(); 
}); 

setInterval(function(){ 
    ajax_load(restoreUserSelectionCallBack); 
}, 3000); 

例:

[change-event-example]あなたが変わるキャッシュその後、利用者からの変更のイベントをキャッチする必要があるということです。変更がチェックボックスで発生した場合Exが、それは次のようになります。

HTML:

<input type="checkbox" class="user_selection" data-no="1" /> 
<input type="checkbox" class="user_selection" data-no="2" /> 

のjQuery:

$('.checkbox').change(function() { 
    if($(this).is(":checked")) { 
     cacheUserSelection($(this).data("no")); 
    }  
}); 
+0

私はそれはあなたがこれらを説明することができ取得できませんでした: '[ change-event-example] .change(function(){ cacheUserSelection(); }); ' および ajax_load(restoreUserSele ctionCallBack); –

関連する問題