JavaScript - 为什么函数没有被调用?

标签 javascript

这是一个奇怪的疑问,但确实如此......

我在页面中有一个按钮,它发出 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;}
    (....)
}

我将警报放置在 adjustmentPageElements 函数的开头。

谢谢

最佳答案

我认为这是因为你的ajax调用是异步的,在你尝试将内容放入页面元素之前,尚未从后端脚本中获取内容。看看this 。如果您进行同步 ajax 调用,浏览器将等待,直到内容被解析回来。另请参阅 this article

关于JavaScript - 为什么函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787277/

相关文章:

javascript - 无法获取 YouTube 视频的自定义播放列表

javascript - 警告错误:reactjs 中无法访问代码

javascript - 如何使客户端请求保持事件状态以延迟jsf中服务器的响应

javascript - 记住 JavaScript 跨页幻灯片中的图像编号

javascript - 属性包含精确的数字选择器,因此找到 3,但找不到 13 或 23

javascript - 具有 100% 宽度元素的 Jquery 水平平移

javascript - 无论如何,有没有办法在javascript中的不同对象之间重用键?

javascript - 就地 Javascript 编辑插件

javascript - 在进行 CSS 打印时,正文部分进入页眉区域

javascript - jQuery - 从元素中获取属性,将其插入另一个元素并重复