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

时间:2023-02-12 21:32:11

一.什么是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请求不能发送 
利用在页面中动态创建

Ajax获取数据的几种格式和解析方式的更多相关文章

  1. vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: <script type="text/javascri ...

  2. jquery通过ajax获取数据,控制显示的数据条数

    效果图: 现在我们可以先看它的json数据,如图所示:                然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据 ...

  3. jquery&period;ajax和Ajax 获取数据

    前几天接触了jquery 看到里面ajax的部分,自己也不是很懂,然后有重复看了即便,然后写了一个小功能,分享下...我刚学的.有错误的请指教. 验证用户名是否存在 在checkname_jqajax ...

  4. node&period;js之用ajax获取数据和ejs获取数据

    摘要:学了node之后有时候分不清前台和后台,今天用ajax和ejs来从后台获取数据,没有数据库,用json数据来进行模拟数据库:来区分前台和后台需要干什么? 一.用ejs获取数据 1.文件目录 2. ...

  5. vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

    https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...

  6. 获取链接的参数,判断是否是微信打开,ajax获取数据

    //获取链接参数function GetQueryString(name) {    var reg = new RegExp("(^|&)" + name + &quot ...

  7. select2 AJAX获取数据

    页面效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...

  8. Ajax请求数据的两种方式

    ajax 请求数据的两种方法,有需要的朋友可以参考下. 实现ajax 异步访问网络的方法有两个.第一个是原始的方法,第二个是利用jquery包的 原始的方法不用引入jquery包,只需在html中编写 ...

  9. Struts2&lpar;四&period;注册时检查用户名是否存在及Action获取数据的三种方式&rpar;

    一.功能 1.用户注册页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

随机推荐

  1. WP老杨解迷:评论数和下载量、榜单的关系

    书接上回,继续研讨评论系统的深层经验,这次从另外一个角度看清榜单关系,提升装逼水准2个加号,如果你能看懂本文,并活学活用,足可在Win10之前醉卧隆中,通晓Windows Phone市场风云变幻,哪些 ...

  2. mysql Error Handling and Raising in Stored Procedures

    MySQL的存储过程错误捕获方式和Oracle的有很大的不同. MySQL中可以使用DECLARE关键字来定义处理程序.其基本语法如下: DECLARE handler_type HANDLER FO ...

  3. a标签实现文件下载

    如果想通过纯前端技术实现文件下载,直接把a标签的href属性设置为文件路径即可,如下: <a href="https://cdn.shopify.com/s/files/1/1545/ ...

  4. Groovy - 介绍

    Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言.使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的 ...

  5. PHP多个一维数组合并成二维数组的简易方法

    当我们需要进行数组遍历数据的时候,需要将多个一维数组进行二维的转换,方法很简单.如下: <?php $a= array('张三','李四','王五'); $b= array ('23','24' ...

  6. Spring Boot整合Elasticsearch

    Spring Boot整合Elasticsearch   Elasticsearch是一个全文搜索引擎,专门用于处理大型数据集.根据描述,自然而然使用它来存储和搜索应用程序日志.与Logstash和K ...

  7. 【题解】 bzoj3916&colon; &lbrack;Baltic2014&rsqb;friends (字符串Hash)

    题面戳我 Solution 首先长度为偶数可以直接判掉 然后我们可以枚举删的位置,通过预处理的\(hash\),判断剩余部分是否划分成两个一样的 判重要注意,我们把字符串分为三个部分\(L_l+1+L ...

  8. 数据中心架构ToR和EoR【总结】

    1.前言 最近在看<云数据中心网络技术>,学习了企业数据中心网络建设过程,看到有ToR和EoR两种布线方式,之前没有接触过,今天总结一下. 2.布线方式 ToR:(Top of Rack) ...

  9. &lbrack;c&sol;c&plus;&plus;&rsqb; programming之路(19)、数组指针

    一.指针运算 #include<stdio.h> #include<stdlib.h> void main0(){ ; int *p=&a; printf());//变 ...

  10. Navicat Premium 12激活

    大自然的搬运工:https://www.jianshu.com/p/5f693b4c9468 声明:本文所提供的所有软件均来自于互联网,个人存放在此作为备用,以备将来不时之需,同时作为大家的分享和学习 ...