我有一个需要很长时间才能运行的 Javascript 函数。我想显示一个加载图标,直到 javascript 函数返回,但是在函数加载时页面上什么也没有出现;页面是白色的,没有做任何事情。
如果我使用 Chrome 进行调试,我会在调用该函数之前看到我的加载图标,然后在调用它时它会消失。我以为我可以对包含 Javascript 的 PHP 页面进行 AJAX 调用,但 AJAX 响应实际上包含该 javascript...
$.ajax({
type: "POST",
url: "resources/scripts/loadXML.php",
data: "datafile="data_file_path,
success: function(msg){
alert( "Data Saved: " + msg );
}
});
我把它拿回来了。MSG 等于这个(实际上是页面中的脚本)。
<script type="text/javascript">
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",<?php echo json_encode($data_file); ?>,false);
xmlhttp.send();
return xmlhttp;
</script>
我只是不希望我的页面是白色的,它会加载该功能吗......有什么想法!?
编辑:
我想异步运行此代码,以免它阻塞我的页面。我想在这个函数运行时看到一个微调器。以前,它在同一页面上,因此我可以轻松地将文件设置为打开,但现在如果我进行异步调用,我需要将它放在另一个文件中。但是,我如何将参数传递给这个文件?!:
<script type="text/javascript">
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",**$NEEDTOGETTHEFILENAME**,false);
xmlhttp.send();
return xmlhttp;
</script>