61阅读

蓝屏代码解析-Ajax的使用代码解析

发布时间:2017-11-12 所属栏目:蓝屏代码解析

一 : Ajax的使用代码解析

Ajax 简介

Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 。

通常不用刷新网页而与服务器通讯的方法:

  • Flash 框架
  • Frameset:如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面
  • XMLHttpRequest:该对象是对 JavaScript 的一个扩展,可使网页与服务器进行通信。是创建 Ajax 应用的最佳选择。实际上通常把 Ajax 当成XMLHttpRequest(XHR) 对象的代名词

ajax基本使用

  ajax在我们的开发中是必须使用的一个技术,ajax即异步的javascript和xml但是现在我们通常使用json来完成数据的交互,ajax职责很单一就是数据的交互,发送数据接收数据是它的核心功能也是唯一的功能。

  ajax的实现依赖XMLHttpRequest,它的基本使用如下:

 var xhr; window.XMLHttpRequest?xhr = new XMLHttpRequest():xhr = new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("get","demo!register.action?name=zt&age=23",true); xhr.send(null); xhr.onreadystatechange = function(){   if(xhr.readyState==4&&xhr.status==200){    alert(JSON.parse(xhr.responseText));   } }

  ajax的职责就是发送数据和接收数据我们基本使用流程为:

  1.获取一个XMLHttpRequest对象

  2.发送数据

  3.接收处理服务器返回的数据

  根据上面的步骤来实现一个异步请求数据的过程,首先获取一个xhr对象,在现代浏览器中我们可以直接通过实例化来获取一个xhr对象:var xhr = new XMLHttpRequest();在IE5、IE6中我们必须使用ActiveXObject来获取xhr对象:var xhr = new ActiveXObject("Microsoft.XMLHTTP")。

  此时我们已经得到了xhr对象接下来就是发送数据,通过xhr.open()方法来执行发送数据的方式,xhr.open()可以接收5个参数,我们经常使用的是前三个:

 xhr.open(arg1,arg2,arg3)

  arg1表示请求数据的方式一般为get或者post

  arg2表示请求的服务器地址

  arg3表示本次请求是同步还是异步,ajax的突出特点就是异步所以我们一般都是使用异步的方式第三个参数设置为true(true表示进行异步请求false表示进行同步请求)

  xhr.open()方法只是准备一个请求,在调用open之后并不会和服务器进行通讯,而是在调用send()函数之后才会和服务器开始通讯,send()函数的参数将作为请求体发送到服务端。如果我们在open()函数中指定请求的方式为get通常我们将send()设置为xhr.send(null),如果我们希望通过请求体发送数据则要将open()函数的请求方式设置为post同时将我们需要发送的数据作为send()函数的参数:xhr.send(param),在调用send()函数之后,和服务器的通讯就开始了。

  对xhr的所有的设置都应该在send()函数之前设置好:

  xhr.open(...);  xhr.setRequestHeader(...);  xhr.overrideMimeType(...);  xhr.onreadystatechange = function(){...};  xhr.send(...);

   但是由于xhr.onreadystatechange是一个事件,所以其放在send()之后也是可以执行的,出于易读性我们一般都将对xhr的设置放在send()函数之前。

  在send()之后可以通过xhr.readyState和xhr.status的来监测本次请求的状态,如果满足xhr.readyState==4&&xhr.status==200则本次请求成功:

在请求成功时我们可以通过xhr.responseText来获取服务器返回的数据,需要注意xhr.responseText是一个字符串。

ajax常用API

  上面的请求过程是一个最基本的请求过程xhr对象还有几个经常使用的方法分别为xhr.abort()、xhr.setRequestHeader()、xhr.overrideMimeType()。

  xhr.abort():终止一个请求,直接调用即可不需要设置参数

 xhr.abort()

  xhr.setRequestHeader():设置发送的请求头:

 xhr.setRequestHeader("Content-Type","application/json; charset=utf-8")

  第一个参数表示要设置的header,第二个参数表示要设置的header的值。xhr.setRequestHeader()必须在xhr.open()和xhr.send()之间,否则会抛出异常,同时xhr.setRequestHeader()的第一个参数是对大小写不敏感的只要我们字母写的对就能够设置成功,但是出于易读性我们要设置为正确的格式。

  xhr.overrideMimeType():重写响应头的Content-Type:

 xhr.overrideMimeType('text/plain; charset=utf-8')

   xhr.overrideMimeType()同样要设置在xhr.send()之前。

JSON.parse()和JSON.stringify()使用

  JSON.parse()用来将一个对象转换为字符串,JSON.stringify()用来将一个字符串转换为对象。在利用ajax进行数据交互的过程中返回的数据多数的时候是一个JSON格式的字符串,如果服务器给我们返回了数据此时我们就需要利用JSON.parse()来解析返回的数据(xhr.responseText即为服务器返回的数据):

 xhr.onreadystatechange = function(){   if(xhr.readyState==4&&xhr.status==200){  var data = JSON.parse(xhr.responseText);   } }

   在使用post方式发送数据的过程中,如果不是文件上传一般情况下传输的也是一个JSON数据,要想能够成功的发送到后台就需要用JSON.stringify()来将JSON对象来转换为一个字符串,同时Content-Type要设置为application/json:

 var sendData = {name:"zt",age:23}; ... xhr.setRequestHeader("Content-Type","application/json; charset=utf-8"); xhr.send(JSON.stringify(sendData));

  另外利用JSON.parse()和JSON.stringify()可以实现一个对象的深拷贝功能:

 var sendData = {name:"zt",age:23}; var copyData = JSON.parse(JSON.stringify(sendData));

$.ajax基本使用

   为了方便使用JQ为我们封装好了一个ajax来方便我们的使用:

 $.ajax({  type:"post",//请求方式  url:"url",//请求地址  data:"...",//发送至服务端的数据  contentType:"...",//设置发送数据的类型如果data是一个json字符串这里要设置为application/json  success:function(data){...},//请求成功的回调函数data可看做是服务器返回的数据  error:function(){...}//请求失败的回调函数  });

  或者:

 $.ajax({  type:"post",  url:"url",  data:"...",  contentType:"...",  })  .done(function(data){...})  .fail(function(){...});

  回调函数中的data即为服务器返回的数据的一个代理,直接使用即可。

  为了简化我们的开发JQ提供了一些全局设置函数包括$.ajaxSetup()、$.()ajaxStart()、$().ajaxStop()、$().ajaxComplete()、$().ajaxError()、$().ajaxSuccess()、$().ajaxSend()。

  $.ajaxSetup()用来设置基本的参数例如:

 $.ajaxSetup({  type:"post",  contentType:"application/json; charset=utf-8"  });

  我们在使用$.ajax时可以直接这样设置:

  $.ajax({  url:"",  success:function(){...},  error:function(){...}  })

  最终等价于:

  $.ajax({  type:"post",  contentType:"application/json; charset=utf-8",  url:"",  success:function(){...},  error:function(){...}  })

  $().ajaxStart()、$().ajaxStop()、$().ajaxComplete()、$().ajaxError()、$().ajaxSuccess()、$().ajaxSend()都是用来设置一些全局回调函数的。例如我们在提交数据时为了防止多次提交我们需要在发送请求时产生一个loading遮罩在数据发送完成后取消遮罩,如果在每一次ajax请求时我们都设置一次就会很麻烦,此时我们就可以用全局回调函数来简化我们的操作:

  利用全局事件在请求开始时产生一个遮罩在请求完成时取消遮罩:

 $(document).ajaxStart(function(){  loadingMask.show();  });  $(document).ajaxComplete(function(){  loadingMask.hide();  });

以上所述是小编给大家介绍的Ajax的使用代码解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对61阅读网站的支持!

二 : 新系统也难逃蓝色灾难——Win7系统蓝屏代码全析之一

自第一代Windows操作系统开始,系统的稳定性就是用户最为关注的重要指标之一,能够满足多线程、高兼容性、高稳定性的系统才是用户最希望的,然而许多用户也都遇到过当希望崩溃时出现的蓝屏代码,一旦出现系统蓝屏的情况,许多朋友就傻[www.61k.com)眼了,这种显示在蓝色屏幕背景下的出错信息,通常都为致命的错误,并且基本上唯一可以采取的措施就是重起电脑,这对于电脑系统来说简直就是灾难。现在到了Win7时代,使用Win7的用户越来越多,微软将各种新技术汇聚于Win7中,但蓝屏的问题仍然无法避免,当遇到Win7蓝屏时,新系统的蓝屏代码又将对应怎样的问题,今天开始小编就对Win7系统蓝屏代码进行解析,帮助用户解决新系统下的蓝色灾难。想了解全部Win7系统蓝屏代码信息的用户,请查阅以下文章:1.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》2.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》3.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》4.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》5.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》6.《新系统也难逃蓝色灾难——Win7系统蓝屏代码全…》Win7系统蓝屏代码全析之一:新系统也难逃蓝色灾难——Win7系统蓝屏代码全析之一1.0x0000000A:IRQL_NOT_LESS_OR_EQUAL错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的。从技术角度讲。表明在内核模式中有级别进程请求(IRQL)访问其没有权限访问的内存地址。解决方案:重新安装硬件驱动程序,并检查硬件间是否有冲突问题,卸载不稳定或错误的软件。2.0x00000012:TRAP_CAUSE_UNKNOWN错误分析:如果遇到这个错误信息,那么很不幸,应为KeBudCheck分析的结果是错误原因未知。解决方案:仔细回想这个错误是什么时候出现的,第一次发生时你对系统做了哪些操作,发生时正在进行什么操作。从这些信息中找出可能的原因,从而选择相应解决方案尝试排除。3.0x0000001A:MEMORY_MANAGEMENT错误分析:这个内存管理错误往往是由硬件引起的,如新安装的硬件、内存本身有问题等。解决方案:如果是在安装Windows时出现,有可能是由于电脑达不到安装Windows的最小内存和磁盘要求,Windows7最低配置要求为:1Ghz的处理器、1G内存、16G硬盘。4.0x0000001E:KMODE_EXCEPTION_NOT_HANDLED错误分析:Windows内核检查到1个非法或者未知的进程指令,这个停机码一般是由问题的内存或是与前面0x0000000A相似的原因造成的。解决方案:①硬件兼容有问题:检查软件的兼容性是否存在问题。②有问题的设备驱动、系统服务或内存冲突和中断冲突:如果在蓝屏信息中出现了驱动程序的名字,请试着在安装模式或者故障恢复控制台中禁用或删除驱动程序,并禁用所有刚安装的驱动和软件。如果错误出现在系统启动过程中,请进入安全模式,将蓝屏信息中所标明的文件重命名或者删除。③如果错误信息中明确指出Win32K.sys:很有可能是第三方远程控制软件造成的,需要从故障恢复控制台中将对该软件的服务关闭。④在安装Windows后第一次重启时出现:最大嫌疑可能时系统分区的磁盘空间不足或BIOS兼容有问题。⑤如果是在关闭某个软件时出现的:很有可能时软件本生存在设计缺陷,请升级或卸载它。
  5.0x00000023:FAT_FILE_SYSTEM、0x00000024:NTFS_FILE_SYSTEM错误分析:0x00000023通常发生在读写FAT16或者FAT32文件系统的系统分区时,而0x00000024则是由于NTFS.sys文件出现错误(这个驱动文件的作用是容许系统读写使用NTFS文件系统的磁盘)。这2个蓝屏错误很有可能是磁盘本身存在物理损坏,或是中断要求封包(IRP)损坏而导致的。其他原因还包括:硬盘磁盘碎片过多、文件读写操作过于频繁,并且数据量非常大或者是由于一些磁盘镜像软件或杀毒软件引起的。解决方案:①首先打开命令行提示符,运行“Chkdsk/r”(注:不是CHKDISK)命令检查并修复硬盘错误,如果报告存在坏道(BadTrack),则使用硬盘厂商提供的检查工具进行检查和修复。②接着禁用所有即使扫描文件的软件,如:杀毒软件、防火墙或备份工具。③右击C:\winnt\system32\drivers\fastfat.sys文件并选择“属性”,查看其版本是否与当前系统所使用的Windows版本相符合。④安装最新的主板驱动程序,特别IDE驱动。如果光驱、可移动存储器也提供有驱动程序,最好将它们升级至最新版。6.0x00000027:RDR_FILE_SYSTEM错误分析:这个错误产生的原因很难判断,不过Windows内存管理出了问题很可能会导致这个停机码的出现。解决方案:如果是内存管理的缘故,通常增加内存会解决问题。以上就是第一部分的Win7系统蓝屏代码介绍,相信大家对该部分的Win7系统蓝屏代码都有了一定的了解,明天小编将继续介绍其它的Win7系统蓝屏代码,需要了解的用户请继续关注寻息网。

三 : Windows XP的蓝屏提示信息解析

┌—┐

│1│

└—┘0x0000000A:IRQL_NOT_LESS_OR_EQUAL

◆错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模式中存在以太高的进程内部请求级

别(IRQL)访问其没有权限访问的内存地址.

◇解决方案:请用前面介绍的解决方案中的2、3、5、8、9方案尝试排除.

┌—┐

│ 2│

└—┘0x00000012:TRAP_CAUSE_UNKNOWN

◆错误分析:如果遇到这个错误信息, 那么很不幸, 应为KeBudCheck分析的结果是错误原因未知.

◇解决方案:既然微软都帮不上忙, 就得靠自己了, 请仔细回想这个错误是什么时候出现的; 第一次发生时你对系统做了哪些作; 发生时正在

进行什么作. 从这些信息中找出可能的原因, 从而选择相应解决方案尝试排除. ┌—┐

│ 3│

└—┘0x0000001A:MEMORY_MANAGEMENT

◆错误分析:这个内存管理错误往往是由硬件引起的, 比如: 新安装的硬件、内存本身有问题等.

◇解决方案:如果是在安装Windows时出现, 有可能是由于你的电脑达不到安装Windows的最小内存和磁盘要求.

┌—┐

│ 4│

└—┘0x0000001E:KMODE_EXCEPTION_NOT_HANDLED

◆错误分析:Windows内核检查到一个非法或者未知的进程指令, 这个停机码一般是由问题的内存或是与前面0x0000000A相似的原因造成的.

◇解决方案:

(1)硬件兼容有问题:请对照前面提到的最新硬件兼容性列表, 查看所有硬件是否包含在该列表中.

(2)有问题的设备驱动、系统服务或内存冲突和中断冲突: 如果在蓝屏信息中出现了驱动程序的名字, 请试着在安装模式或者故障恢复控制台中

禁用或删除驱动程序, 并禁用所有刚安装的驱动和软件. 如果错误出现在系统启动过程中, 请进入安全模式, 将蓝屏信息中所标明的文件重命

本文标题:蓝屏代码解析-Ajax的使用代码解析
本文地址: http://www.61k.com/1089168.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1