AJAX中的请求方式以及同步异步的区别

请求方式,分为GET与POST:
GET
最为常见的HTTP请求,普通上网浏览页面就是GET。GET方式的参数请求直接跟在URL后,以问号开始。(JS中用window.location.search获得)。参数可以用encodeURIComponent进行编码,使用方式:

var EnParam = encodeURIComponent(param);

URL只支持大约2K的长度,即2048字符数;使用GET进行AJAX请求时候会缓存导致出现的页面不是正确的,一般方法加random参数值;ajax.send(null)。

POST

向服务器提交数据用到。

需要将form表单中的值先取出转换成字符串,用&符号连接,(同GET传参数一样);提交数据量2GB ;使用ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'),处理提交的字符串;ajax.send(strings),这个 strings表示form中需要提交的内容,例如a=1&b=2类似这样的字符串。

 

同步与异步:

ajax.open方法中,第3个参数是设同步或者异步。prototype等js类库一般都默认为异步,即设为true。先说下同步的情况 下,js会等待请求返回,获取status。不需要onreadystatechange事件处理函数。而异步则需要 onreadystatechange事件处理,且值为4再正确处理下面的内容。

(注:文中的 ajax 表示XMLHTTP请求对象。)

 

 

复制代码
 1 //同步传输模式
 2 
 3 function RequestByGet(nProducttemp,nCountrytemp)
 4 {
 5     var xmlhttp
 6 
 7     if (window.XMLHttpRequest)  
 8     {  
 9          //isIE   =   false;  
10          xmlhttp   =   new   XMLHttpRequest();  
11     }  
12     else if (window.ActiveXObject)
13     {  
14          //isIE   =   true;  
15          xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP");  
16     }
17                  
18     //Web page location.
19     var URL="http://www.baidu.com/;
20     xmlhttp.open("GET",URL, false);
21     //xmlhttp.SetRequestHeader("Content-Type","text/html; charset=Shift_JIS")
22     xmlhttp.send(null);
23     var result = xmlhttp.status;
24    
25     //OK
26     if(result==200)
27     {
28         document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
29     }
30     xmlhttp = null;
31 }
32 
33 
34 //异步传输模式
35 var xmlhttp
36 
37 function RequestByGet(nProducttemp,nCountrytemp)
38 {
39     if (window.XMLHttpRequest)  
40     {  
41          //isIE   =   false;  
42          xmlhttp   =   new   XMLHttpRequest();  
43     }  
44     else if (window.ActiveXObject)
45     {  
46          //isIE   =   true;  47          xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP");  48     }49                  50     //Web page location.51     var URL="http://www.baidu.com/";52     xmlhttp.open("GET",URL, true);53     xmlhttp.onreadystatechange = handleResponse;54     //xmlhttp.SetRequestHeader("Content-Type","text/html; charset=UTF-8")55     xmlhttp.send(null);  56 }57 58 function handleResponse()59 {60     if(xmlhttp.readyState == 4 && xmlhttp.status==200)61     {62         document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;63         xmlhttp = null;64     }65 }66 
复制代码

转载于:https://www.cnblogs.com/zhaojinhui/p/4118852.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js获取当前时间(昨天、今天、明天)

js获取当前时间(昨天、今天、明天) //昨天的时间var day1 new Date();day1.setTime(day1.getTime() - 24 * 60 * 60 * 1000);var s1 day1.getFullYear() "-" (day1.getMonth() 1) "-" day1.getDate();console.log(day1, s1); //今天的时间var day2 …

献给网页开发者的20款Firefox插件

毫无疑问,比起其他浏览器,Chrome虽有着明显的优势,但是它的劲敌Firefox却是很多前端攻城师和研发人员的挚爱,为了尽可能地提高用户体验,Firefox的社区在插件开发和运用上有着丰富的经验,说它是网站开发者的…

VC6重载字体对话框,去除颜色下拉框

为了去除字体对话框中的颜色下拉框,我们需要重载字体对话框类:CFontDialog 1. 创建一个MFC Class,继承自CFontDialog: // MyFontDialong.h : header file //// CMyFontDialong dialogclass CMyFontDialong : public CFontDialog {DECLARE_DY…

Mac系统下如何使用命令行方式启动MySQL

首先,先去官网下载MySQL,选择Mac版本的DMG格式的文件。 官网地址为:dev.mysql.com/downloads/mysql/5.7.html 然后下载后,直接双击对应的dmg格式的文件进行安装即可。接下来,我们可以先看下如何在系统偏好设置中启动M…

android之隐示意图跳转启动另一个activity

主面板布局&#xff1a;layout/activity_main.xml <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" android:layout_width"match_parent" android:layout_height"match_parent" android:orientation"…

中国移动话费查询,短信查询,各种免费查询!以后别打10086了

发送YE/CXYE到10086,余额查询 发送CXBX到10086&#xff0c;查询当月套餐剩余短信条数。 发送CXGFX到10086&#xff0c;查询当月飞信GPRS套餐剩余流量。 发送CXGTC到10086&#xff0c;查询当月GPRS套餐剩余流量。 发送CXCCT到10086&#xff0c;查询当月超级畅听套餐剩余流量。 发…

利用XML生成Excel

先用Excel将我们要生成的表格设计好&#xff1a; 然后另存为XML表格&#xff1a; 将生成的Book1.xml复制到项目中并打开: 找到Table节点&#xff0c;将节点的ss:ExpandedRowCount”2” 删除掉 往下会看到我们刚输入的标题了吧 <Row> <Cell ss:StyleID"s23"&…

vue获取前一个页面路由地址

可以使用&#xff1a; vue-router的beforeRouterEnter钩子 其实也就是一个路由守卫 <script> export default {data() {return {fromPath: "",};},beforeRouteEnter(to, from, next) {next((vm) > {// 通过 vm 访问组件实例,将值传入fromPathvm.fromPath …

display:none和visibility:hidden两者的区别

使用css让元素不可见的方法有很多种&#xff0c;裁剪、定位到屏幕外边、透明度变换等都是可以的。但是最常用两种方式就是设置元素样式为display: none或者visibility: hidden。很多公司的面试官也常常会问面试者这两者之间的区别。 display与元素的隐藏 如果给一个元素设置了…

CSS中设置border属性为0与none的区别

在我们设置CSS的时候&#xff0c;对标签元素不设置边框属性或者取消边框属性一般设置为&#xff1a;border:none;或border:0;两种方法均可。 border:none;与border:0;的区别体现有两点&#xff1a;一是理论上的性能差异&#xff1b;二是浏览器兼容性的差异。 1.性能差异 【b…

windows下Python+Editplus windows Python开发环境

From: http://www.jb51.net/softjc/34898.html 点评&#xff1a;Python的安装程序以及源代码可以从其官方网站http://www.python.org/获取。以Windows XP、Python 3.1.3为例&#xff0c;在Windows下安装Python的过程如下。&#xff08;1&#xff09;从Python官方网站 http://…

PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法

解决方法&#xff1a;切换到tp5目录然后使用chmod -R 777 tp5来解决&#xff0c;当然不太建议这样做&#xff0c;这不符合我们在线上的操作方式。一种比较推荐的做法是执行chmod -R daemon:daemon tp5来进行处理&#xff0c;这是因为在Mac上默认的Apache用户为daemon&#xff0…

旋转动画用控件RotateView

旋转动画用控件RotateView 最终效果&#xff1a; 源码&#xff1a; RotateView.h 与 RotateView.m // // RotateView.h // RotateAnimationView // // Created by YouXianMing on 14/12/8. // Copyright (c) 2014年 YouXianMing. All rights reserved. //#import <UIKit…

UPS分类:直流UPS和交流UPS

以下资料来源于IT168术语详解&#xff1a;http://detail.it168.com/UPS从结构上一般分为直流UPS(DC-UPS)和交流UPS(AC-UPS)两大类。(1)直流UPS直流不间断电源由两个基本单元组成。分别是整流器、蓄电池。其原理结构方框图如下&#xff1a;其工作过程是&#xff1a;当市电正常时…

HTTP1.0和HTTP1.1和HTTP2.0的区别

HTTP1.0和HTTP1.1和HTTP2.0的区别 1 HTTP1.0和HTTP1.1的区别 1.1 长连接(Persistent Connection) HTTP1.1支持长连接和请求的流水线处理&#xff0c;在一个TCP连接上可以传送多个HTTP请求和响应&#xff0c;减少了TCP的建立和关闭连接的消耗和延迟&#xff0c;在HTTP1.1中默…