Javascript无法正确执行过程

Javascript无法正确执行过程,javascript,Javascript,我正在尝试使用JavaScript来操纵我正在构建的虚拟网页中的页面内容 为此,我编写了一个名为writeText(file\u name,location)的小函数,它获取一个由文件名指定的HTML文件,并将该文件的内容打印到一对标记的innerHTML,这些标记的id属性对应于location字段 然后,我将这些调用封装在其他函数中,以自动生成这样的完整页面 所以我称之为这样的东西: function displayHome() { writeText('homeMain.html'

我正在尝试使用JavaScript来操纵我正在构建的虚拟网页中的页面内容

为此,我编写了一个名为
writeText(file\u name,location)
的小函数,它获取一个由文件名指定的HTML文件,并将该文件的内容打印到一对
标记的
innerHTML
,这些标记的id属性对应于
location
字段

然后,我将这些调用封装在其他函数中,以自动生成这样的完整页面

所以我称之为这样的东西:

function displayHome() {
    writeText('homeMain.html', 'mainFrame');
    writeText('homeSide.html', 'sideFrame');
}
…以显示主页

但是,当我调用此函数时,显示仅更新
'sideFrame'
对象,而不对
'mainFrame'
的内容进行任何更改。但是,如果我在两个
writeText()
调用之间使用警报(“伪”)中断函数,那么两个contentFrames都会正确更新

我想知道以前是否有人见过类似的情况,是否有人知道如何修复它

为了完整起见(这几乎是从w3schools网站上逐字复制的):


您使用的是一个全局变量xmlhttp,因此在函数第二次运行时它会被关闭。请求本身是异步的,因此第二个调用在第一个调用仍在运行时运行

要解决此问题,请改为使用局部变量(因此每个函数调用都有自己的xmlhttp),方法是在xmlhttp之前使用“var”关键字:

var xmlhttp;
if (window.XMLHttpRequest)  {
    xmlhttp = new XMLHttpRequest();
}   else    {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

更准确地说,第一次调用在第二次执行
xmlhttp.open()
时被取消。从w3schools网站复制逐字记录已经是一个错误。请不要使用w3schools.com,它充满了错误。看见
var xmlhttp;
if (window.XMLHttpRequest)  {
    xmlhttp = new XMLHttpRequest();
}   else    {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}