`
kidiaoer
  • 浏览: 822329 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

ajax知识点相关

    博客分类:
  • ajax
阅读更多


项目开发告一段落,喘口气,总结一下。

1 AJAX还是AJAH
* AJAX的很多经典应用其实都是利用xmlhttp空间访问后台程序,后台程序返回脚本用eval回调或者返回简单数据的方式来开发。这样的开发模式的好处是设计简单轻巧,对熟悉dhtml的开发者来说上手会比较块,跨浏览器问题也容易解决,做简单的应用也够用。gmail,google suggest都是用这种方式。但是在我看来gmail已经吧AJAH应用到极限了,更复杂的数据结构用简单数据和回调方式来组织就开始有点力不从心了。

* 前AJAX的一种传统做法是后台返回完整的xml文件后用脚本(利用控件)解析xml后操作页面的dom节点来动态生成页面的一部分。这样作的优点是可以充分利用xml的强大表达能力传输各种数据结构,缺点是页面的dom操作效率不高,而且IE在dom操作的API上bug多多。之所以叫“前AJAX”,因为我们在AJAX这个名词出现前已经这样做了很多年了。

* AJAX另一种传统做法是后台返回完整的xml文件后用脚本(利用控件)解析xml后生成html代码再灌回页面的层中。这样的做法回避了页面dom操作的一些问题,在生成的内容比较多的时候利用一些字符串计算的优化技巧(主要是数组和正则的应用)可以相当高效的生成页面。在我看来这是未来的发展趋势。

我现在的项目主要采用的是第三种方式,结合第二种。我使用的是自己的一个小巧的框架,模拟jsp的语法来生成html代码,但是依赖于浏览器的 xml解析API,因此难以跨浏览器。google的开源项目ajaxslt提供了一个纯js的xslt解决方式,功能更强大,可以在页面中局部的应用 xslt解析xml生成html或者其他形式的数据,但是带来了xslt这个技术门槛。sf上的ZK似乎也不错,但是带来的是xul这个技术门槛,同时后台被绑定在了J2EE服务器上面。

2 CACHE
如果使用xmlhttp控件,在发起http请求的时候IE会包办cache策略,很多时候更新了数据却无法获得更新后的数据。一开始试图用传统方式在URL后面加随机数来强制更新,但是IE仍然距不发出新的请求。
一个解决方法是在后台写expires: 0或者其他的禁止前台cache的头,但是这样在数据没有更新的时候又会带来不必要的服务器压力、响应延迟和带宽浪费。
一个稍微好一点的解决方法是,前台在提交数据以后,需要强制更新数据的时候:

xmlhttp.setRequestHeader("If-Modified-Since","0");

3 系统错误: -1072896748。
用xmlhttp接收到数据的时候经常是用 xmldom.loadXML(xmlhttp.responseXML.xml)来判断返回的数据的正确性,但是如果后台送过来不正确的xml的时候有时回触发-1072896748系统错误。这是因为xmlhttp.responseXML已经没有解析到东西了,我们还试图访问它的xml属性而触发的。
解决的方法是在使用responseXML.xml 或者 responseText的时候要做try/catch:
try{var tmp = xmlhttp.responseXML.xml}catch(ex){err=true;}
有些人喜欢catch的时候判断 exception.description=="系统错误: -1072896748。" , 如果客户端不是简体中文版的系统的时候就判断不到了。其实这个地方只要有异常,都必须走异常处理流程了,不用区分的那么仔细。
分享到:
评论

相关推荐

    Ajax知识点总结

    Ajax由html、javascript技术、dhtml和DOM组成这个方法可以将web界面转化成交互性的ajax应用程序

    ajax知识点总结

    **Ajax(Asynchronous JavaScript and XML)技术概述** Ajax是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON等格式传输数据,...

    Ajax 知识点练习答案.md

    Ajax 知识点练习答案.md

    Ajax知识点.docx

    **Ajax 知识点** Ajax,全称 Asynchronous JavaScript and XML,是一种利用JavaScript与XML进行异步数据交换的技术,使得网页无需整体刷新就能更新部分内容。它的核心是XMLHttpRequest对象,该对象允许JavaScript在...

    史上最全面的Ajax知识点归纳总结

    史上最全面的Ajax知识点归纳总结

    ajax的基本知识

    通过对上述知识点的深入理解,开发者可以更好地掌握AJAX的原理和实践,构建出更加高效、响应式的Web应用。在未来,随着Web技术的不断进步,AJAX及其相关技术将继续发挥重要作用,推动Web应用向更高级别发展。

    Ajax的知识结构和内容

    Ajax,即Asynchronous JavaScript and XML,是一种用于创建高效、交互性强的Web应用程序的技术。它并不是一项全新的技术,而是由已有的...理解和掌握Ajax的知识结构,对于提升Web开发能力、构建高效的Web应用至关重要。

    Ajax 基础知识点汇总(代码+知识点+xmind思维导图)

    Ajax,全称Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这一技术的核心在于JavaScript,XML则...

    AJAX_专题--体验AJAX_知识点剖析_实例贯串各知识点实现AJAX

    在**体验AJAX**的过程中,我们可以看到以下几个关键点: 1. **异步交互**:用户在输入信息时,例如注册用户名,AJAX可以在后台验证用户名的可用性,而不会打断用户的操作。这得益于XMLHttpRequest对象,它可以监听...

    SpringBoot+SpringSecurity处理Ajax登录请求问题(推荐)

    知识点2:Ajax登录请求问题 在前后端分离的开发模式中,前端使用Vue来处理数据请求,而后台使用Spring Boot来处理数据交互。由于Ajax请求不像传统的表单提交那样可以使用Spring Security的默认配置,因此我们需要...

    Ajax+jquery知识点总结

    Ajax(Asynchronous JavaScript and XML)和jQuery是Web开发中的核心技术,尤其在构建动态、交互性强的网页应用时不可或缺。Ajax允许我们在不刷新整个页面的情况下,实现局部数据的异步更新,提高了用户体验。jQuery...

    ajax代码 ajax代码

    以下是对这些关键知识点的详细阐述: 1. **JavaScript**:作为Ajax的基础,JavaScript用于创建和执行异步请求。它处理用户的交互,当用户触发某个事件(如点击按钮)时,JavaScript会启动Ajax请求。 2. **...

    Ajax刷新 java Ajax 页面刷新

    下面将详细探讨Ajax在Java中的应用以及页面刷新的相关知识点。 一、Ajax的基本原理 Ajax的核心是JavaScript对象XMLHttpRequest,它允许JavaScript在后台与服务器进行通信。通过创建XMLHttpRequest对象,发送HTTP...

    原生的Ajax技术,包含原生Ajax的所有常用的知识点

    以上就是关于原生Ajax技术的基本知识点,包括创建异步对象、发送请求、处理响应、以及与服务器端的交互。掌握这些内容,你就可以创建基本的Ajax应用,实现在不刷新页面的情况下与服务器进行数据交互。

    深入浅出Ajax(Head Rush Ajax) 源码 书中代码

    根据描述,这本书分为七章,每章可能涵盖以下关键知识点: 1. **第一章:初识Ajax** - Ajax的历史和概念 - Ajax工作原理的简要介绍 - 浏览器与服务器间通信的基础知识 2. **第二章:创建第一个Ajax请求** - ...

    ajax demo ajax实例

    以下是一些关键知识点: 1. **创建XMLHttpRequest对象**:在JavaScript中,我们首先需要创建一个XMLHttpRequest对象。例如: ```javascript var xhr = new XMLHttpRequest(); ``` 2. **打开连接**:使用`open()...

    自己用的简单封装AJAX类

    **标题解析:** "自己用的简单封装...以上是对标题、描述和标签内容的详细解读,以及对压缩包内文件可能包含的知识点的分析。通过学习这个简单的AJAX类,开发者可以更好地理解AJAX的工作机制,并在实践中提高开发效率。

    three ajax ajax ajax three ajax ajax ajax

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页内容的技术。...通过学习和实践这些知识点,开发者能够掌握使用Ajax和DWR来创建高效、交互性强的网页应用。

Global site tag (gtag.js) - Google Analytics