有人可以解释这个ajax代码的作用吗?
function ajaxProgress(){
//Math.random() is for bitchy ie to prevent caching the xml.
$.get('sample.ff?do=progressInfo&type=sampletype&dummy='+Math.random(), { dataType: 'xml'}, function(xml) {
//if the import is running get infos about the progress...
if($('/importProgress/running', xml).text() == 'true') {
//..there are no infos yet, so it was just started..
if($('/importProgress/progress', xml) == null || $('/importProgress/progress', xml).text() == ''){
//do something
}
..........
setTimeout( "ajaxProgress()", 1000);
答案 0 :(得分:2)
此函数每秒递归调用自身。它向Import.ff
发送一个AJAX GET请求,并传递3个查询字符串参数:do=progressInfo
,type=sampletype
和一个随机数。此随机数附加到URL,因为GET请求由浏览器缓存,并且由此确保它在每个请求上从服务器获取新内容。
服务器本身发送XML文件作为响应。此XML文件包含一些节点,如:
<importProgress>
<running>true</running>
<progress>20</progress>
</importProgress>
因此脚本在AJAX请求的成功回调中解析此XML。它尝试获取running
和progress
节点的值。如果running=true
则检查是否存在进度节点并对其进行一些处理。最后,它使用setTimeout
函数在1秒后自行调用。等等。
所以基本上这个脚本通过使用AJAX GET请求以1秒的间隔轮询服务器并解析响应来报告某些服务器操作的进度。