Ajax自动删除鼠标选择

时间:2017-10-07 23:41:09

标签: jquery ajax

我正在开发一个Ajax函数,该函数必须每3秒从数据库中获取一次用户。它工作正常。真正的麻烦是,每3秒钟功能刷新一次,如果有人选择(通过鼠标),选择将在3秒后被删除。

我该怎么做才能解决这个问题?

简单示例:

ajax_load();

setInterval(function(){
   ajax_load();

}, 3000)

1 个答案:

答案 0 :(得分:0)

解决方案是:

  1. 当用户更改其选择时,将选择内容缓存到安全位置(例如:sessionStorage或已更改的HTML部分之外的隐藏输入)
  2. 重新呈现内容后,从您缓存的位置恢复选择。
  3. 伪代码:

    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]表示您需要从用户捕获更改事件,然后缓存更改。例如,如果复选框中发生更改,则应为:

    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"));
        }       
    });