• λ我爱Aspx >> Asp.Net >> 用JSON技术加快AJAX程序开发
  • 用JSON技术加快AJAX程序开发

  • :未知  Դ:非寒日志  :2007-4-21 0:46:24  ؼ:ajax
  • 三、JSON与XML数据分析对比

    借助于XMLHttpRequest对象,你可以从自己的基于AJAX的应用程序内部检索XML和JSON文件。典型情况下,你可以使用类似如下的交互:

    var req = new XMLHttpRequest();req.open("GET","http://localhost/addr?cardID=32", /*async*/true);req.onreadystatechange = myHandler;req.send(/*no params*/null);

    随着对Web服务器的不断响应,被你传递的处理器函数(在本例中是myHandler)被反复调用,这种特征提供给你一种时机?及早地取消事务,更新一个进度条,等等。通常,你只是在Web请求完成时才采取行动(应用返回的数据)。

    为了处理上面地址卡程序的XML版本,myHandler的编码可以类似如下:

    function myHandler() {if (req.readyState == 4 /*完成*/) {//用第一个街道地址更新表单中的地址域var addrField = document.getElementById('addr');var root = req.responseXML;var addrsElem = root.getElementsByTagName('addresses')[0];var firstAddr = addrsElem.getElementsByTagName('address')[0];var addrText = fistAddr.firstChild;var addrValue = addrText.nodeValue;addrField.value = addrValue;}}

    注意,你不必自己分析XML文档,分析任务可以由XMLHttpRequest对象为你自动完成。之后,这个XMLHttpRequest对象使得由分析生成的DOM树可应用于responseXML属性中。然后,你可以借助这个responseXML属性并调用getElementsByTagName方法来查找文档中的addresses部分,但仅能使用找到的第一个(其实只有一个)。然后,你再次在找到的address上调用getElementsByTagName方法来查找下一层中的第一个address元素,然后再次使用找到的第一个address……然后,你得到该元素的第一个DOM子结点(它是一个文本结点)并得到该结点的值(它正是你想找的街道地址)。最后,你就可以在表单域中显示它。

    显然,这是一项工作量很大的工作!现在,让我们试用一下JSON:

    function myHandler() {if (req.readyState == 4 /*complete*/) {var addrField = document.getElementById('addr');var card = eval('(' + req.responseText + ')');addrField.value = card.addresses[0].value;}}
    Ҷƪл˵?
  • һƪ用XenoCode 2006 加密dll (.NET混淆 )
    һƪ用C#绘柱形图(owc编程)