分享

Ajax获取数据的几种格式和解析方式

 张小龙net馆藏 2019-10-12

一.什么是ajax 
 AJAX的全称是Asynchronous JavaScript and XML(是异步的 javascript 和 XML)。 
  ajax不是新的编程语言,而是一种使用现有标准的新方法,ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 
  ajax是一种用于快速创建动态网页的技术。通过在后台与服务器进行少量数据交换,ajax就可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。

  ajax的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。

  ajax前景非常乐观,可以提高系统性能,优化用户界面。AJAX现有直接框架AjaxPro,可以引入AjaxPro.2.dll文件,可以直接在前台页面js调用后台页面的方法。但此框架与FORM验证有冲突。另微软也引入了AJAX组建,需要添加AjaxControlToolkit.dll文件,可以在控件列表中出现相关控件。

  ajax的优点:

  1、最大的一点是页面无刷新,用户的体验非常好。 
  2、使用异步方式与服务器通信,具有更加迅速的响应能力。。 
  3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。 
  4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。 
  5、ajax可使因特网应用程序更小、更快,更友好。

  ajax的缺点:

  1、ajax不支持浏览器back按钮。 
  2、安全问题 AJAX暴露了与服务器交互的细节。 
  3、对搜索引擎的支持比较弱。 
  4、破坏了程序的异常机制。 
  5、不容易调试。 
$.ajax({ 
url: ‘string’, 
type: ‘GET/POST’, 
dataType: ‘string’, //规定获取的数据类型 
timeout: 1000, //设置延时 
cache: true/false, //是否自动缓存 
error: function(){}, //错误执行方法 
success: function(){}//成功执行方法 
})

 二.$.ajax()方法中dataType属性的取值 
$.ajax()方法中dataType属性要求为String类型的参数,预期服务器返回的数据类型。如果不指定,jQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下: 
xml:返回XML文档,可用jquery处理。 
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。 
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。 
json:返回JSON数据。 
jsonp:”jsonp”格式,使用jsonp形式调用函数时,如”myurl?callback=?”jquery将自转换?为正确的函数名,以执行回调函数。 
text:纯文本格式数据。

三、datatype的解析方式 
“xml”数据类型的解析:XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。

  XML的解析方式分为四种: 
  1、DOM解析; 
  2、SAX解析; 
  3、JDOM解析; 
  4、DOM4J解析。

  1、DOM解析 
  DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。

  DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形成了一棵节点树。无论XML文档中所描述的是什么类型的信息,即便是制表数据、项目列表或一个文档,利用DOM所生成的模型都是节点树的形式。也就是说,DOM强制使用树模型来访问XML文档中的信息。由于XML本质上就是一种分层结构,所以这种描述方法是相当有效的。

  DOM树所提供的随机访问方式给应用程序的开发带来了很大的灵活性,它可以任意地控制整个XML文档中的内容。然而,由于DOM分析器把整个XML文档转化成DOM树放在了内存中,因此,当文档比较大或者结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历也是一项耗时的操作。所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。不过,由于DOM分析器所采用的树结构的思想与XML文档的结构相吻合,同时鉴于随机访问所带来的方便,因此,DOM分析器还是有很广泛的使用价值的。

    优点: 
      1、形成了树结构,有助于更好的理解、掌握,且代码容易编写。 
      2、解析过程中,树结构保存在内存中,方便修改。 
    缺点: 
      1、由于文件是一次性读取,所以对内存的耗费比较大。 
      2、如果XML文件比较大,容易影响解析性能且可能会造成内存溢出。 
       
  2、SAX解析 
  SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX接口也被称作事件驱动接口。

    优点: 
      1、采用事件驱动模式,对内存耗费比较小。 
      2、适用于只处理XML文件中的数据时。

    缺点: 
      1、编码比较麻烦。 
      2、很难同时访问XML文件中的多处不同数据。 
       
 3、JDOM解析 
    特征: 
      1、仅使用具体类,而不使用接口。 
      2、API大量使用了Collections类。 
       
 4、DOM4J解析 
    特征: 
      1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。 
      2、它使用接口和抽象基本类方法。 
      3、具有性能优异、灵活性好、功能强大和极端易用的特点。 
      4、是一个开放源码的文件

“html”数据类型的解析: 
后台返回纯文本HTML信息;包含的script标签会在插入DOM时执行。 
将一段HTML片段保存在一个HTML文件中,在另外的主页面直接读取该HTML文件,然后解析里面的HTML代码片段融入到主页面中。 
如:a.html页面内容 

hello jQuery


在其他页面解析a.html代码如下: 
(“#a1”).click(function(){(“#div2”).load(‘fragment.html’); 
return false; 
}); 
在项目中常用的是Dom去解析html,但是以下介绍的解析器可能会让你更简单、容易去解析html。另外javaweb中常用的dom解析是dom4j 
1、jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。据说它是基于MIT协议发布的。 
jsoup的主要功能如下: 
从一个URL,文件或字符串中解析HTML; 
使用DOM或CSS选择器来查找、取出数据; 
可操作HTML元素、属性、文本;

 

“script”数据类型的解析: 
返回纯文本JavaScript代码, 
“jsonp”数据类型的解析: 
首先得理解什么是jsonp? 
由于受到同源策略的限制所以产生了jsonp方式来跨域请求数据 
同源: 
  同源策略是浏览器的一种安全策略,所谓同源是指,同域名,同协议,同端口。 
  1.、目的:保护用户信息安全 
  2、限制:cookie、localStorage和IndexDB无法读取 
  无法操作跨域的iframe里的dom元素 
  ajax请求不能发送 
利用在页面中动态创建

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多