什么应该是理想的后备方法

What should be the ideal fallback method?

本文关键字:方法 理想 什么      更新时间:2023-09-26

如果启用了JavaScript,我将使用Ajax调用一个特殊文件,如果禁用了JavaScript,它将加载常规文件。

我的代码是这样的:

    window.onload = function() {
      document
        .getElementById("wrapper")
        .innerHTML = "<img src='cdn/img/demo/loading.gif'>";
      var x = null;
      if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        var x = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        // code for IE6, IE5
        var x = new ActiveXObject('MSXML2.XMLHTTP.3.0');
      } else {
        // @TODO - Fallback
        // My Question : What should be an ideal Fallback method here?
      }
      x.open("GET", "js_enabled.php", true);
      x.send("");
      x.onreadystatechange = function() {
        if (x.readyState == 4) {
          if (x.status == 200)
            document.getElementById("wrapper").innerHTML = x.responseText;
          else
            document.getElementById("wrapper").innerHTML = "Error loading document";
        }
      }
    }

在第一个块中,什么应该是理想的回退方法?

更新:回退是针对浏览器的。正如您所看到的,这些命令适用于IE和普通浏览器。我想知道如果上帝保佑一些浏览器不理解蚂蚁的那两个命令,那又怎样?

如果JS可用,AJAX极有可能可用,所以这不是你必须经常处理的事情,但如果你正在寻找AJAX不可用时的后备方案(我猜你是从你的代码示例中得到的),那么唯一真正的方法就是确保你的页面在没有它的情况下正常工作。

链接应该指向适当的页面(或者只是重新加载当前页面),然后用JS覆盖以使用AJAX(但仅当AJAX可用时)。这样,即使JS不可用,也会有一个正常运行的网站,更不用说AJAX了。

为了让你知道当缺乏AJAX支持时问题有多小,根据本网站,包括AJAX支持的浏览器包括以下内容:

  • Internet Explorer 5.0及更高版本
  • Opera 7.6及以上
  • Netscape 7.1及更高版本
  • Firefox 1.0及更高版本
  • Safari 1.2

正如你所看到的,那是一些非常古老的东西。

您会感到困惑,如果禁用了javascript,那么就没有回退方法。假设您的意思是javascript的合成/禁用。

然后,您要做的是用默认文本填充该区域,并使用js隐藏它
因此,如果未启用JS,则会向用户显示默认文本
如果启用了js,那么默认文本几乎在呈现后立即被隐藏,然后您的ajax将接管