使用jQuery $ ajax,响应有时会被发送或绑定到错误的GET调用

时间:2014-12-19 15:36:18

标签: jquery ajax xml

我正在使用jQuery $ ajax。我正在向一个代理“服务器”发送三个查询,这实际上是一个工业设备中的一块板。

他们查询XML数据,响应显示在网络浏览器中。

它在大多数情况下都很好用,但有时响应会变得不同步。

这就是我要经过的。

查询 - GET:Device_AB>单位
URL - aaaaaaaaa / device.xml?query = GET%3ADevice_AB%3EUnit& _ = 1419001010182

查询 - GET:Device_AB> Device1> CD> EFG
URL - aaaaaaaaa / device.xml?query = GET%3ADevide_AB%3EDevice1%3ECD%3EEFG& _ = 1419000598786

查询 - GET:Device_AB>单位>状态
URL - aaaaaaaaa / device.xml?query = GET%3ADevice_AB%3EUnit%3EStatus& _ = 1419002064896

正在发生的事情是,不是接收对第一个GET的正确响应(应该是Unit(1st)XML标记内的内容),而是通信不同步,响应来自EFG(2nd)XML标记或Status(3rd)XML标记。对于Status XML标记的内容,GET查询也是如此。 URL末尾的后缀每次都是唯一的。有谁知道为什么响应没有与正确的呼叫相关联?我在大约半秒钟内重复对所有三个人的呼叫,因此屏幕上的数据会不断更新。 javascript非常复杂,涵盖了几个页面。我相信JavaScript很好。这是非常标准的,并且正在研究其他工业设备而没有同步丢失。在我看来,只要呼叫正确进行,响应的同步问题可能在服务器上。如果不了解服务器如何处理和返回数据,我的问题更多的是理论问题。服务器如何知道哪个GET将响应发送回?,或者换句话说,服务器如何将响应与正确的GET呼叫联系起来?

在几个javascript页面中有很多ajax部分,但我相信这是这个应用程序的相关部分。还有更多,但如果我不需要,我真的不想把它分开。我相信问题是服务器端。

    this.ajaxParameters = {

        type: "GET",

        url: this.url,

        data: {query:"GET:"+this.xmlPath},

        dataType: (self.groupMode === true) ? "xml" : "text",

        timeout: 5000,

        cache: false,

        success: function(data) {

            self.parseResponse(data);

        },

        error: function() {

            $("#errorfield").text("no communication");

        },

        complete: function() {

            self.ajaxInProgress = 0;

        }

    };

0 个答案:

没有答案