0

我的网站导航有以下代码。由于大部分代码都是相同的,我想知道是否有办法压缩它。我对 AJAX 非常陌生。谢谢

function web()
{
if(XMLHttpRequestObject) {
    var obj = document.getElementById('content');
    XMLHttpRequestObject.open("GET", "./nav/web.html");


    XMLHttpRequestObject.onreadystatechange = function()
    {
        if (XMLHttpRequestObject.readyState == 4 &&
        XMLHttpRequestObject.status == 200) {

            obj.innerHTML = XMLHttpRequestObject.responseText;
            }
        }
    XMLHttpRequestObject.send(null);
    }
}

function prices()
{
if(XMLHttpRequestObject) {
    var obj = document.getElementById('content');
    XMLHttpRequestObject.open("GET", "./nav/prices.html");


    XMLHttpRequestObject.onreadystatechange = function()
    {
        if (XMLHttpRequestObject.readyState == 4 &&
        XMLHttpRequestObject.status == 200) {

            obj.innerHTML = XMLHttpRequestObject.responseText;
            }
        }
    XMLHttpRequestObject.send(null);
    }
}

function clientList()
{
if(XMLHttpRequestObject) {
    var obj = document.getElementById('content');
    XMLHttpRequestObject.open("GET", "./nav/clientlist.html");


    XMLHttpRequestObject.onreadystatechange = function()
    {
        if (XMLHttpRequestObject.readyState == 4 &&
        XMLHttpRequestObject.status == 200) {

            obj.innerHTML = XMLHttpRequestObject.responseText;
            }
        }
    XMLHttpRequestObject.send(null);
    }
}
4

1 回答 1

0

是的,您可以构建一个“模板”来保存每个请求,而不是为每个进程提供一个函数,然后传递一个变量来使用

switch(b) { case "web" : XMLHttpRequestObject.open("GET", "./nav/web.html"); break; case "prices" : XMLHttpRequestObject.open("GET", "./nav/prices.html");

这是一个样本

function dameloPapa(a,b,c) {
if (a=="")
  {
  document.getElementById(c).innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById(c).innerHTML=xmlhttp.responseText;
    }
  }
switch(b){
case "web" : XMLHttpRequestObject.open("GET", "./nav/web.html?id"+a); break;
//etc...
}
xmlhttp.send();

这样,您只需使用 JavaScript(onclick、onchange 等)调用代码 dameloPapa('variable','op','div_id'); 并显示结果

我优化了这样的一个,以便在我想要的任何时候调用,我将它与 PHP、MySQL 混合了很多,并且像一个魅力一样工作,希望这会有所帮助!

于 2012-07-19T19:37:38.257 回答