JavaScript—为什么函数不可用';你没打电话吗?
这是一个奇怪的疑问,但它是 我在页面中有一个按钮,它发出Ajax请求,当我得到答案时,我将其写入页面,然后调用一个函数来调整页面元素。当我第一次单击按钮时,不会调用此函数,但在下一个请求中会调用它 但是……如果我在函数的作用域中放置一个警报,当我发出相同的第一个ajax请求并等待响应调用函数时,它会显示警报的内容并调整页面元素 嗯……我看不出这有什么道理,但是如果这只戒指对任何人来说都是一个铃铛,我很感激你的帮助 编辑:JavaScript—为什么函数不可用';你没打电话吗?,javascript,Javascript,这是一个奇怪的疑问,但它是 我在页面中有一个按钮,它发出Ajax请求,当我得到答案时,我将其写入页面,然后调用一个函数来调整页面元素。当我第一次单击按钮时,不会调用此函数,但在下一个请求中会调用它 但是……如果我在函数的作用域中放置一个警报,当我发出相同的第一个ajax请求并等待响应调用函数时,它会显示警报的内容并调整页面元素 嗯……我看不出这有什么道理,但是如果这只戒指对任何人来说都是一个铃铛,我很感激你的帮助 编辑: function HandleResponseCellVehicleRep
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功能的开头
谢谢我认为这是因为ajax调用是异步的,在您尝试将内容放入页面元素之前,还没有从后端脚本获取内容。看一看。如果进行同步ajax调用,浏览器将等待内容解析回来。另请参见我认为这是因为ajax调用是异步的,在您尝试将内容放入页面元素之前,还没有从后端脚本获取内容。看一看。如果进行同步ajax调用,浏览器将等待内容解析回来。另请参见我认为如果您提供代码显示代码的相关部分,您的答案会更幸运,否则您只会得到随机猜测。我认为如果您提供代码显示代码的相关部分,您的答案会更幸运,否则您只会得到随机猜测。谢谢Tim,我将阅读这篇文章,稍后我将给出一些反馈。这是真的,但同步ajax调用通常不是一个好主意。事实上,对同步调用要小心。如果ajax调用失败,浏览器将冻结,直到用户刷新页面,这是您不想要的。如果在极少数情况下需要同步调用,则在调用完成之前,用户输入的大部分时间都处于禁用状态。谢谢Tim,我将阅读这篇文章,稍后我将给出一些反馈。这是真的,但同步ajax调用通常不是一个好主意。事实上,使用同步调用时要小心。如果ajax调用失败,浏览器将冻结,直到用户刷新页面,这是您不想要的。如果在极少数情况下需要同步调用,则在调用完成之前,用户输入的大部分时间都处于禁用状态。