【问题标题】:Javascript i can't add a new paragraph using ajaxJavascript 我无法使用 ajax 添加新段落
【发布时间】:2018-02-28 05:01:47
【问题描述】:

嗨,我遇到了这个问题,当我只使用代码时

(没有“demo2”)工作正常,在浏览器中我可以看到它在“PruebasGeneral/MBVR000008.txt”上的文本当我更改此文件/文本时,无需刷新即可在我的 HTML 中工作,但我需要添加另一个

如您所见,我尝试使用此代码添加相同的功能,但不起作用在浏览器中的两段显示了“PruebasGeneral/MBVR000009.txt”里面的内容,所以基本上显示了demo2和demo2。我应该怎么办?
       <!DOCTYPE html>
<html>


<body>


<p id="demo"></p>
<p id="demo2"></p>


<script>


function loadDoc(path, callback) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      callback(this.responseText);
    }
  };
  xhttp.open("GET", path + "?t=" + Math.random(), true);
  xhttp.send();
}

function data1Loaded(data) {
 document.getElementById("demo").innerHTML = data ; // do something with data
}

function data2Loaded(data) {
 document.getElementById("demo2").innerHTML = data ; // do something with data
}

function loadDocs() {
  loadDoc('/PruebasGeneral/MBVR000008.txt', data1Loaded);
  loadDoc('/PruebasGeneral/MBVR000009.txt', data2Loaded);

  setTimeout(loadDocs, 1000);
}

window.onload = loadDocs;
</script>



</body>
</html>

【问题讨论】:

  • 您能否编辑一个更有用的标题,而不是全部大写?大声说话只会惹恼
  • 我做到了,如果标题惹恼了你,我很抱歉。我是新来的。

标签: javascript html ajax


【解决方案1】:

你需要重新来一遍。你不能只打电话给open() 两次:

function loadDoc(path, callback) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      callback(this.responseText);
    }
  };
  xhttp.open("GET", path + "?t=" + Math.random(), true);
  xhttp.send();
}

function data1Loaded(data) {
  // do something with data
}

function data2Loaded(data) {
  // do something with data
}

function loadDocs() {
  loadDoc('path1', data1Loaded);
  loadDoc('path2', data2Loaded);
  
  setTimeout(loadDocs, 1000);
}

window.onload = loadDocs;

【讨论】:

  • 很抱歉这么说,但我在这里有点新手,我如何使用您的代码使用“demo”和“demo2”作为段落的ID,以及xhttp.open(“GET”,路径 + "?t=" + Math.random(), true);在我的情况下是“/PruebasGeneral/MBVR000001.txt?t=" ...如果你不介意,请。如果我想要更多,它会起作用吗?
  • path1path2 更改为您拥有的那些字符串。然后在data1Loadeddata2Loaded 中,data 变量将是结果,因此您只需将document.getElementById() 代码移动到适当的函数中。
  • 我这里有一个错误:xhttp.open("GET", path + "?t=" + Math.random(), true);在浏览器中显示两个数据“未定义”和“请求URL:localhost/PruebasGeneral/[object%20Event]?t=0.4763424311685205”对象中的错误
  • 您可以添加到您的问题并包含您更新的代码吗?写一大串连字符 (------),然后将更新放在下面,这样您的原始问题也仍然存在。
  • 是的,我刚刚做到了,伙计。
猜你喜欢
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多