`
yueliancao
  • 浏览: 16103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascritp,prototype,jquery,mootools的AJAX使用

阅读更多

老是记不住各个框架的AJAX写法,今天总结了一下,发现了一些小不同。

Javascript及prototype写法:
<div id="a"></div>
<div id='b'></div>
<input type="button" onclick="startXMLHttp();" value="普通GET" />
<div id="a1"></div>
<div id='b1'></div>
<input type="button" onclick="startXMLHttp1();" value="普通POST" />
<div id="c"></div>
<div id="d"></div>
<input type="button" onclick="prototypeSend();" value="prototype GET" />
<div id="c1"></div>
<div id="d1"></div>
<input type="button" onclick="prototypeSend1();" value="prototype POST" />
<script type="text/javascript">
var xmlHttp;
function createXMLHttp(){
 if (window.XMLHttpRequest){
 xmlHttp = new XMLHttpRequest();
}else if (window.ActiveXObject){
 try{
  xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
 }
 catch(e){
  try{
   xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  }
  catch(e) {};
  }
 }
}
function startXMLHttp(){
 createXMLHttp();
 var sendStr = "name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt";
 sendStr = encodeURI(sendStr);
 document.getElementById('a').innerHTML = sendStr;
 xmlHttp.onreadystatechange = doSomething;
 xmlHttp.open('GET','ajaxtest.php?'+sendStr,true);
 xmlHttp.send(null);
}
function doSomething(){
 if (xmlHttp.readyState == 4){
  if (xmlHttp.status == 200){
  document.getElementById('b').innerHTML = xmlHttp.responseText;
  }
 }
}
function startXMLHttp1(){
 createXMLHttp();
 var sendStr = "name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt";
 sendStr = encodeURI(sendStr);
 document.getElementById('a1').innerHTML = sendStr;
 xmlHttp.onreadystatechange = doSomething1;
 //xmlHttp.open('GET','ajaxtest.php?'+sendStr,true);
 //xmlHttp.send(null);
 xmlHttp.open('POST','ajaxtest.php',true);
 xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
 xmlHttp.send(sendStr);
}
function doSomething1(){
 if (xmlHttp.readyState == 4){
  if (xmlHttp.status == 200){
   document.getElementById('b1').innerHTML = xmlHttp.responseText;
  }
 }
}
</script>
<script type="text/javascript">
function prototypeSend(){
 var po = new Ajax.Request('ajaxtest.php',{
  method:'GET',
  parameters: "name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt",
  onSuccess: function(transport){
   document.getElementById('c').innerHTML = po.parameters.name+po.parameters.age+po.parameters.en;
   document.getElementById('d').innerHTML = transport.responseText;
  },
  onFailure: function(){ }
 });
}
function prototypeSend1(){
 var po = new Ajax.Request('ajaxtest.php',{
 method:'POST',
 parameters: "name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt",
 onSuccess: function(transport){
  document.getElementById('c1').innerHTML = po.parameters.name+po.parameters.age+po.parameters.en;
  document.getElementById('d1').innerHTML = transport.responseText;
  },
  onFailure: function(){ }
 });
}
</script>

jQuery写法:
<div id="e"></div>
<div id="f"></div>
<input type="button" onclick="jquerySend();" value="jquery GET" />
<div id="e1"></div>
<div id="f1"></div>
<input type="button" onclick="jquerySend1();" value="jquery POST" />
<script type="text/javascript">
function jquerySend(){
 var po = $.ajax({
 type:'GET',
 url:'ajaxtest.php',
 data:"name=博科&age=23&en=<>@+/ ://'f#a",
 success:function(transport){
  //document.getElementById('e').innerHTML = this.data;
   document.getElementById('f').innerHTML = transport;
  }
 })
}
function jquerySend1(){
 var po = $.ajax({
 type:'POST',
 url:'ajaxtest.php',
 data:"name=博科&age=23&en=<>@+/ ://'f#a",
 success:function(transport){
  //document.getElementById('e1').innerHTML = po.data.name+po.data.age+po.data.en;
  document.getElementById('f1').innerHTML = transport;
  }
 })
}
</script>

mootools写法:
<div id="a"></div>
<div id='b'></div>
<input type="button" onclick="startXMLHttp();" value="mootools GET" />
<div id="a1"></div>
<div id='b1'></div>
<input type="button" onclick="startXMLHttp1();" value="mootools POST" />
<script type="text/javascript">
function startXMLHttp(){
 new Request({url: 'ajaxtest.php',
 method:'get',
 data:"name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt",
 onSuccess: function(responseText) {
 document.getElementById('b').innerHTML = responseText;
 },
 onFailure: function() {}
 }).send();
}
function startXMLHttp1(){
 new Request({url: 'ajaxtest.php',
 method:'post',
 data:"name=博科&age=23&en=<>@+/ ://'f#a&mn=%rt",
 onSuccess: function(responseText) {
 document.getElementById('b1').innerHTML = responseText;
},
onFailure: function() {
}
}).send();
}
</script>

以上Prototype 1.6.0.2,jQuery 1.2.6,mootools 1.2.1。
prototype自动对“+”进行了编码,所以后台用php的urldecode时能够把“+”正确解析,但是其它几种方法没有,urldecode时把“+”解析成了空格。

使用GET提交时,如果不对变量进行encodeURIComponent,此时若某个变量里带有“#”,那从这个变量的“#”字符往后的参数就不能被正确传递,但是POST可以。不过prototype的POST和GET是一样的,“#”之后的字符都不能被正确传递,而且如果使用了encodeURIComponent,prototype会报错。看了一下prototype代码对“#”进行了特殊处理。本想调试一下试试,可是我的firefox(firefox内存占用一直在涨没有尽头,唉)立马把握的老机(hp ze2202)卡死,cpu 100%,其它浏览器不知道用啥调试。

暂时就这些,以后用的时候注意,有空继续研究

分享到:
评论

相关推荐

    精通JavaScript+jQuery实例

    本书所有实例的素材文件、源文件和成果文件。 (2)与本书讲解内容配合的多媒体视频授课录像。 (3)由于JavaScritp和jQuery的开发与CSS关系密切,因此本书附赠了相应的视频课程。

    javascritp基础语法

    如果浏览器不支持 JavaScript,或者用户关闭了 JavaScript,可以使用 `&lt;noscript&gt;` 标签来显示替代内容,例如: ``` &lt;noscript&gt;Hello to the non-JavaScript browser. ``` 链接外部脚本文件 可以使用 `&lt;script&gt;` ...

    prototype.js

    JavaScritp库,prototype.js

    javascritp 时间选择联动框

    年月日 三级联动 默认选择是系统当天时间,只能选择大于系统时间的日期....

    javascritp 日期加减、间隔函数源码

    ### JavaScript 日期加减与间隔计算函数解析 在日常开发工作中,我们经常需要处理与日期...同时,通过对函数内部实现的理解,开发者也可以根据实际需求进一步扩展或修改这些函数,使其更加符合特定场景下的使用需求。

    简单创建ajax对象

    简单使用创建ajax对象,几乎试用所有浏览器。

    javascritp高级程序设计(第三版)

    pdf 高清 完整书签,javascript学习的宝典,学习一遍后可当字典来用!

    JavaScritp、ASP车辆调度系统.pdf

    JavaScritp、ASP车辆调度系统

    javascript实现ajax HoverMenu

    传统的实现方式可能依赖于纯JavaScript或者jQuery等库来完成。然而,在该示例中,通过结合Ajax技术与JavaScript,可以进一步提高HoverMenu的响应速度和用户体验。 #### 二、关键功能点分析 ##### 2.1 定位DOM元素 ...

    网站的登录模版[html css/div javascritp ]

    1:采用div布局 不使用table 2:css javascript images 放在自己的文件夹内 3:通过javascript 实现输入验证 4:账号要求 6-12位 必须以字母开头 只能包含 a-z、0-9、_、@ 5:密码要求 6-20位 不能与账号相同 6:...

    JavaScritp网站特效(2).rar

    JavaScript库如jQuery提供了丰富的API来实现这些效果,例如`.fadeIn()`, `.slideUp()`等方法。 2. **图形图像类**: 图形和图像处理涉及到Canvas或SVG技术,它们允许开发者用JavaScript绘制和操作矢量图形。例如,...

    Javasript面试题(很全面得)

    - AJAX(异步JavaScript和XML)用于在不刷新页面的情况下发送和接收数据,现在通常使用`fetch` API。 10. **ES6及后续版本新特性** - `let`和`const`的引入,解决`var`的一些问题。 - 解构赋值用于方便地从数组...

    javascritp 鼠标触发事件大全

    下面是一个简单的例子,展示了如何在ASP页面中使用JavaScript的`click`事件: ```html ()"&gt;点击我 function callASPFunction() { var xhr = new XMLHttpRequest(); xhr.open('POST', 'process.asp', true); ...

    JavaScritp网站特效(1)

    JavaScript是一种广泛应用于网页和互联网应用的编程语言,它赋予了网页动态交互的能力,极大地提升了用户体验。在"JavaScript网站特效(1)"这个主题中,我们将会探讨一些基础到高级的JavaScript技术,以及如何利用...

    javascritp+css+tabpanel的实现

    最后,JavaScript(这里可以使用纯JavaScript或库如jQuery)用于实现Tab Panel的交互逻辑。当用户点击一个标签时,JavaScript会改变选中的标签样式,并显示对应的内容区域。以下是一个简单的JavaScript实现: ```...

    javascritp 高级教程

    了解这些库和框架的原理和使用方法,是成为一个全面的JavaScript开发者必不可少的步骤。 本“JavaScript高级教程”将全面覆盖这些知识点,并通过实例和练习帮助读者巩固理解。无论你是希望提升技能的开发者,还是...

    利用Javascritp的对象特性,计算字符串重复字符个数(方法同Java版)

    利用Javascritp的对象特性,计算字符串重复字符个数(方法同Java版,不过Java版想利用其他办法,测试中)

    嵌入式web服务器boa_C语言/Python + HTML + javascript + ajax 代码实例例子

    html 中使用javascritp + ajax 从C语言生成的cgi文件的get, set 一些值. boa服务器的相关配置参数说明: http://www.cnblogs.com/liuweiqiang/p/3859130.html boa安装包文件名: boa-for-hi3516a.tar.gz boa.conf ...

    javascritp添加url参数将参数加入到url中.docx

    本文档详细介绍了如何使用 JavaScript 来添加或更新 URL 的查询参数,并提供了完整的示例代码。 #### 一、核心概念 1. **URL 组件**: - **protocol**:协议部分,如 `http://` 或 `https://`。 - **host**:...

    javaScritp.zip

    JavaScript是SUN与网景发明的,基于对象的,区分大小写的,弱的脚本语言.JavaScript能做什么? 表单验证, 客户端编程

Global site tag (gtag.js) - Google Analytics