Javascript未正确执行过程
Javascript not executing procedures correctly
我正试图使用JavaScript来操纵我正在构建的虚拟网页中的页面内容。
为此,我编写了一个名为writeText(file_name, location)
的小函数,该函数获取由文件名指定的HTML文件,并将该文件的内容打印到一对<div>
标签的innerHTML
,这些标签的id属性对应于location
字段。
然后,我将调用封装在其他函数中,以自动构建这样的完整页面。
所以我把它叫做
function displayHome() {
writeText('homeMain.html', 'mainFrame');
writeText('homeSide.html', 'sideFrame');
}
以显示主页。
然而,当我调用此函数时,显示器只更新'sideFrame'
对象,而不会对'mainFrame'
的内容进行任何更改。但是,如果我在两个writeText()
调用之间用警报("Dummy")中断函数,那么两个contentFrames都会正确更新。
我想知道是否有人以前见过这样的东西,是否有人知道如何修复它
为了完整起见(这几乎是逐字逐句地从w3schools网站上复制的):
function writeText(script_file, location) {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
document.getElementById(location).innerHTML = xmlhttp.responseText;
}
xmlhttp.open("GET",script_file,true);
xmlhttp.send();
}
您使用的是一个全局变量xmlhttp,因此它在函数第二次运行时会被破坏。请求本身是异步的,因此第二个调用在第一个调用仍在运行时运行。
要解决此问题,请使用本地变量(因此每个对函数的调用都有自己的xmlhttp),方法是在xmlhttp:之前使用"var"关键字
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
相关文章:
- 为effect Composer创建GodRays效果过程
- 在asp.net页面中显示javascript执行过程中的加载图标
- 如何在没有Ajax的ASP.NET 2.0中在执行C#代码的过程中打开showModalDialog
- 正确的JQuery过程以执行以下操作
- Object.defineProperty()在测试(jpm运行)过程中有效,但不起作用;使用实际xpi时,不要执行任何
- 如何从 JS 代码或存储过程在 DocumentDB 中执行预触发器
- jQuery $.ajax 函数在执行过程中停止
- ng-repeat在执行过程中显示不同的值
- 在动画过程中重复执行代码
- 如何在ASP.NET中的Javascript Confirmbutton Click上执行存储过程
- Window.onload与过程执行
- 如何使屏幕在执行过程中进行角度刷新
- 当调用适配器的过程失败时,失败函数不会执行
- 本地Javascript代码在执行过程中是如何流动的
- 在jQuery中执行此过程的最有效方法是什么?
- 理解javascript的执行过程
- 在长时间执行过程之前和之后使用Jquery更改元素css
- 在脚本执行过程中,当AJAX调用返回时,JavaScript中会发生什么
- Javascript未正确执行过程
- 在具有多个参数的环回远程方法中执行 Postgres 存储过程