如何在从服务器获取ajax响应的同时附加数据。

时间:2013-05-24 06:15:29

标签: javascript ajax jquery jquery-mobile cordova

任何人都可以帮助我。 我正在使用带有phonegap应用程序的Jquery-mobile工作。 如何在从服务器获取ajax响应的同时附加数据?此处以 Json格式从服务器检索 800 kb 数据。

这是我的代码:

$.ajax({        
    url:url,
    data:'',
    contentType: "application/json; charset=utf-8",
    type: "POST",
    dataType: "json",
    crossDomain:true,
    cache: false,
    async:false,
    //success: loadAllCars,

    success:function(data){
       //alert(data)
    },
    error: OnError
}); 

我想从服务器获取数据的同时获取数据:

我有超过800 KB的数据大小,当它获得800 KB的10 KB大小数据时,我需要同时获取它以减少附加延迟并避免用户等待

2 个答案:

答案 0 :(得分:1)

在这种情况下,JSON无效。所以你不能这样做:(

在任何情况下,您都可以显示加载进度。

How to show loading spinner in jQuery?

答案 1 :(得分:1)

无法使用JSON,因为所有数据对象都包含在{}[]中。这意味着您必须等到文件的末尾,直到解析器知道如何处理它(这是如何构造对象)。

也许你可以使用不同的编码,它会发送所有数据"按照&#34 ;; de order并不重要但是没有" end"标记(例如}])。

使用XMLHTTPRequest.onreadystatechange()方法,该方法会针对readyState为3的每个已接收数据块触发,您可以阅读XMLHTTPRequest.resonseText。然后,如果要发送对象,则必须自己创建智能缓冲区,或者如果数据只是文本,则直接使用显示数据。

我认为你不能用jQuery.ajax()方法做到这一点,但直接方法并不困难。

顺便说一下;您还必须确保您的服务器不时刷新数据,以防它必须在本地使用大量资源。例如;在进行大量计算时,每个结果都可以刷新到客户端,同时服务器处理下一个结果。