Javascript—多个XmlHttpRequests,并与它们关联目标div
我有一个包含多个XmlHttpRequest调用的页面,我知道要将哪个连接输出到哪个div 是否有一种方法可以重用函数的代码,以某种方式传递我希望写入输出的divname 现在,我真的把这些函数复制了6次 当然可以 如果你试图用6个不同的div做完全相同的事情,但是使用6个不同的调用和6个不同的响应,那么做一个函数,它接受一个div,并使用该函数6次Javascript—多个XmlHttpRequests,并与它们关联目标div,javascript,xmlhttprequest,closures,Javascript,Xmlhttprequest,Closures,我有一个包含多个XmlHttpRequest调用的页面,我知道要将哪个连接输出到哪个div 是否有一种方法可以重用函数的代码,以某种方式传递我希望写入输出的divname 现在,我真的把这些函数复制了6次 当然可以 如果你试图用6个不同的div做完全相同的事情,但是使用6个不同的调用和6个不同的响应,那么做一个函数,它接受一个div,并使用该函数6次 var doSomethingAJAX = function (el, url) { var xhr = new XMLHttpReque
var doSomethingAJAX = function (el, url) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onload = function () { el.appendChild(document.createTextNode(xhr.responseText)); };
xhr.onerror = function () { /* ... */ };
xhr.send();
};
doSomethingAJAX(document.getElementById("div1"), "http://example.com/json1.json");
doSomethingAJAX(document.getElementById("div2"), "http://example.com/json2.json");
有更多的通用方法可以做到这一点,但如果您试图解决6
s的问题,我不会建议您创建一个AJAX框架
关键是,无论您重复的是什么工作,都要弄清楚如何将其转换为一个函数(或两个函数,或三个函数),然后调用该函数,只传递更改的部分
如果这还远远不够,那么用例子更新你的问题,我们就可以找到答案。当然可以
如果你试图用6个不同的div做完全相同的事情,但是使用6个不同的调用和6个不同的响应,那么做一个函数,它接受一个div,并使用该函数6次
var doSomethingAJAX = function (el, url) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onload = function () { el.appendChild(document.createTextNode(xhr.responseText)); };
xhr.onerror = function () { /* ... */ };
xhr.send();
};
doSomethingAJAX(document.getElementById("div1"), "http://example.com/json1.json");
doSomethingAJAX(document.getElementById("div2"), "http://example.com/json2.json");
有更多的通用方法可以做到这一点,但如果您试图解决6
s的问题,我不会建议您创建一个AJAX框架
关键是,无论您重复的是什么工作,都要弄清楚如何将其转换为一个函数(或两个函数,或三个函数),然后调用该函数,只传递更改的部分
如果这还远远不够,那么用例子更新你的问题,我们就可以找到答案。是的,词汇范围/闭包概念很容易做到。最好是显示两个请求的代码,以便进行更快、更客观的重构。您可以制作一个JSON对象服务器端,其中键是查询选择器(如#myDiv),值是内容。{“#myDiv”:“文本…”,“.myClass”:“其他文本…”。在客户端Json.parse responseText并使用for-in进行演练。是的,使用词法作用域/闭包概念可以轻松完成。最好是显示两个请求的代码,以便进行更快、更客观的重构。您可以制作一个JSON对象服务器端,其中键是查询选择器(如#myDiv),值是内容。{“#myDiv”:“文本…”,“.myClass”:“其他文本…”。在客户端Json.parse responseText并在中使用for遍历。