这是一个奇怪的疑问,但它确实......
我在页面中有一个按钮,它发出一个Ajax请求,当我有了答案时,我将它写入页面然后它被称为调整页面元素的函数。当我第一次单击该按钮时,不会调用此函数,但在下一个请求中它是。
但是......如果我在函数范围内发出警报,当我发出相同的第一个ajax请求并等待答案来调用该函数时,它会显示警报的内容并调整我的页面元素。
嗯......我没有看到任何逻辑,但如果这个戒指对任何人都是响铃,我会帮助你。
编辑:
function HandleResponseCellVehicleReport()
{
if (XmlHttp.readyState == 4) {
if (XmlHttp.status == 200) {
WriteCellVehicleReport(XmlHttp.responseText);
}
else {
alert("Problema: " + XmlHttp.statusText);
}
}
}
function WriteReport(myJSONtext) {
(....)
EndLoad(document);
EnableButtons(document);
adjustPageElements(pageId,document);
}
function adjustPageElements(client, __document) {
var viewportwidth;
var viewportheight;
if (!__document) {__document = document;}
(....)
}
我将警报放在adjustPageElements函数的开头。
由于
答案 0 :(得分:3)
我认为这是因为你的ajax调用是Asynchronous,在尝试将其放入页面元素之前,内容尚未从后端脚本中获取。看看this。如果您进行同步ajax调用,浏览器将等待,直到内容被解析回来。另见this article