Javascript 如何在从服务器获取ajax响应的同时追加数据。?
任何人都可以帮助我。 我在使用phonegap应用程序的Jquery mobile中工作。 如何在从服务器获取ajax响应的同时追加数据?在这里,从服务器检索的数据超过了800 kb,为Json格式 这是我的代码:Javascript 如何在从服务器获取ajax响应的同时追加数据。?,javascript,ajax,jquery,jquery-mobile,cordova,Javascript,Ajax,Jquery,Jquery Mobile,Cordova,任何人都可以帮助我。 我在使用phonegap应用程序的Jquery mobile中工作。 如何在从服务器获取ajax响应的同时追加数据?在这里,从服务器检索的数据超过了800 kb,为Json格式 这是我的代码: $.ajax({ url:url, data:'', contentType: "application/json; charset=utf-8", type: "POST", dataType: "json", cro
$.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大小的数据,当它得到10 KB大小的800 KB数据时,我需要同时获取这些数据,以减少追加的延迟并避免用户等待,在这种情况下,JSON将无效。所以你不能这样做:( 在任何情况下,您都可以显示加载进度
无法使用JSON,因为所有数据对象都包装在
{}
和[]
中。这意味着您必须等到文件末尾,直到解析器知道如何处理它(即如何构造对象)
也许您可以使用不同的编码,它“按原样”发送所有数据;取消排序非常重要,但不会有“结束”标记(例如}
和]
)
使用XMLHTTPRequest.onreadystatechange()
方法,该方法会对每个接收到的readyState为3
的数据块触发,您可以读取XMLHTTPRequest.resonseText
。然后,如果发送对象,您必须自己创建一个智能缓冲区,如果数据只是文本,则直接使用display
我认为用jQuery.ajax()
方法无法做到这一点,但直接方法并没有那么难
顺便说一句,您还必须确保您的服务器不时刷新数据,以防它在本地使用大量资源。例如,在进行繁重的计算时,每个结果都可以刷新到客户端,而服务器处理下一个结果。我们可以获得ajax请求百分比吗?@Amir,您对它的理解是什么“百分比"在ajax请求的上下文中?我的意思是…当我们从服务器到客户端收到响应时,我们可以显示它正在进行中。例如,它加载了10%的完整数据,然后我们可以显示为100个正在进行中的条带中的10个。当然……如果您事先知道要发送多少字节的数据。这个数字可以是自定义格式的第一部分。T当客户端知道需要多少时。在每个
onreadystatechange()
事件上,它可以检查已经接收到多少字节,并进行计算。是的。嗯……前几个字节是指接下来将有多少字节。然后,对于每个接收到的数据块,您可以处理(显示它)并计算到目前为止您已经感知到的累计字节数。这样您就知道了百分比。只有在服务器事先知道它将发送多少字节(或者客户端对它将接收多少字节有一个预期)的情况下,这才有效但是超过800 KB的数据需要更多的时间。而且,一直显示微调器对用户来说是一种不好的体验。最佳做法是什么?不向用户显示?:)应该通知用户有关数据获取的信息