Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript—为什么函数不可用';你没打电话吗?_Javascript - Fatal编程技术网

JavaScript—为什么函数不可用';你没打电话吗?

JavaScript—为什么函数不可用';你没打电话吗?,javascript,Javascript,这是一个奇怪的疑问,但它是 我在页面中有一个按钮,它发出Ajax请求,当我得到答案时,我将其写入页面,然后调用一个函数来调整页面元素。当我第一次单击按钮时,不会调用此函数,但在下一个请求中会调用它 但是……如果我在函数的作用域中放置一个警报,当我发出相同的第一个ajax请求并等待响应调用函数时,它会显示警报的内容并调整页面元素 嗯……我看不出这有什么道理,但是如果这只戒指对任何人来说都是一个铃铛,我很感激你的帮助 编辑: function HandleResponseCellVehicleRep

这是一个奇怪的疑问,但它是

我在页面中有一个按钮,它发出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功能的开头


谢谢

我认为这是因为ajax调用是异步的,在您尝试将内容放入页面元素之前,还没有从后端脚本获取内容。看一看。如果进行同步ajax调用,浏览器将等待内容解析回来。另请参见

我认为这是因为ajax调用是异步的,在您尝试将内容放入页面元素之前,还没有从后端脚本获取内容。看一看。如果进行同步ajax调用,浏览器将等待内容解析回来。另请参见

我认为如果您提供代码显示代码的相关部分,您的答案会更幸运,否则您只会得到随机猜测。我认为如果您提供代码显示代码的相关部分,您的答案会更幸运,否则您只会得到随机猜测。谢谢Tim,我将阅读这篇文章,稍后我将给出一些反馈。这是真的,但同步ajax调用通常不是一个好主意。事实上,对同步调用要小心。如果ajax调用失败,浏览器将冻结,直到用户刷新页面,这是您不想要的。如果在极少数情况下需要同步调用,则在调用完成之前,用户输入的大部分时间都处于禁用状态。谢谢Tim,我将阅读这篇文章,稍后我将给出一些反馈。这是真的,但同步ajax调用通常不是一个好主意。事实上,使用同步调用时要小心。如果ajax调用失败,浏览器将冻结,直到用户刷新页面,这是您不想要的。如果在极少数情况下需要同步调用,则在调用完成之前,用户输入的大部分时间都处于禁用状态。