Javascript通过JSON控制数据流

Javascript通过JSON控制数据流,javascript,jquery,json,flow,Javascript,Jquery,Json,Flow,我有一个用JQuery+KnockOut制作的web应用程序,它从web服务读取JSon格式的所有数据。使用此代码,每秒钟重新加载和重新分析数据有三个Json流: setInterval(function () { loadCommon(); loadLive(); loadDashboard(); }, 1000); 问题是当数据从页面本身更新时。事实上,我有一个控件,比如一个文本框,它将数据发送到服务。它会对其进行验证,以防更新后面的代码库。代码很简单: $('#t

我有一个用JQuery+KnockOut制作的web应用程序,它从web服务读取JSon格式的所有数据。使用此代码,每秒钟重新加载和重新分析数据有三个Json流:

setInterval(function () {
    loadCommon();
    loadLive();
    loadDashboard();
}, 1000);
问题是当数据从页面本身更新时。事实上,我有一个控件,比如一个文本框,它将数据发送到服务。它会对其进行验证,以防更新后面的代码库。代码很简单:

$('#textbox-1').blur(function () {
    savePost("Dash_textbox1:" + $('#textbox-1').val());
});
function savePost(data) {
    "use strict";
    console.log("POOOOOOOOSSSSSSSSSTTTTT : " + data);
    $.ajax({
        url: save_data_url,
        type: 'POST',
        data: data
    });
}
除了一件事,一切都正常。让我们假设一切都在上午8:00.01开始……请看这里:

08.00.01 AM>>>加载了LoadCommon、LoadLive、LoadDashboard的界面调用了>>>文本框-1,初始值为10>>>很好

08.00.02 AM>>>再次加载界面>>>文本框-1有10个>>>>良好

08.00.03 AM>>>再次加载界面>>>文本框-1有10个>>>>良好

08.00.04 AM>>>再次加载接口>>>文本框-1有10个>>>>良好

08.00.045 AM>>>用户在textbox-1中输入值5,数据将发送到Web服务>>>textbox-1有5个用户更改>>>很好

08.00.5 AM>>>>再次加载接口>>>文本框-1有10个,因为服务没有完成处理发送到post>>>WROONG的08.00.045数据

08.00.6 AM>>>再次加载接口>>>文本框-1有5个,因为服务已完成处理发送到post的08.00.045数据>>>很好

视觉效果是textbox-1在10和5之后将其值从10快速更改为5。 我在webservice上没有电源,而且由于某些原因,该服务可能不会将数据更新为5,因此再次将其设置为10是正确的,那么我如何在Javascript中处理该流呢


感谢您像这样保护您的数据更改:

var processing_update = false;

setInterval(function () {
  if (processing_update) return;

  loadCommon();
  loadLive();
  loadDashboard();
}, 1000);

function savePost(data) {
  "use strict";
  console.log("POOOOOOOOSSSSSSSSSTTTTT : " + data);

  processing_update = true;

  $.ajax({
    url: save_data_url,
    type: 'POST',
    data: data,
    complete: function() {
      // all done
      processing_update = false;
    }
  });
}