我有一个提交按钮,它使用 javascript xmlhttp 请求来调用 php 页面,该页面的唯一功能是在我的主页上为谷歌地球窗口编写一个 kml 文件。php 页面在 Web 浏览器中无法以 html 格式查看。
php 文件中的公式按预期工作。我遇到的问题是,在我第一次手动按下提交后,我希望脚本继续每 5 秒重复一次,直到我手动重新加载页面(或按下按钮停止脚本)。因为我计划让多个用户同时查看该页面,每个用户被分配一个随机的 5 位数字来保存他们的会话信息并在新创建的会话文件夹中创建 kml 文件,直到他们重新加载页面(然后将创建用户的新会话号)。
因为每个用户都被指定了一个唯一的会话 id,所以页面不能在 php 计算重复时重新加载。因此,我的 javascript 函数末尾有一个 return false 行。
我希望能够使用 javascript 调用 setInterval 来重复该功能而无需重新加载页面。如果页面要重新加载刚刚创建的 kml 文件,现在将无法在新会话中查看。让我知道是否有人有任何建议。以下是适用的代码。
主 index.php 页面上的 DIV id
<div>
<form id="KMLsubmit" name=KMLsubmit >
<input class="KMLsubmit" type="submit" value="Create KML" onclick="createKML()"/>
</form>
</div>
主 index.php 页面上的 JavaScript 函数
function createKML() {
$('#KMLsubmit').submit(function () {
$.get("generateKML.php",function(data,status){
});
//alert("Generating your KML files!");
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("kmldetails").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","generateKML.php?session=" + session,true);
xmlhttp.send();
return false;
});
}
让我知道是否有人对如何执行此操作有任何建议。谢谢您的帮助。