热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript进修总结(七)Ajax和Http状态字

Ajax及其事情道理AJAX是一种与服务器交流数据无需革新网页的手艺,最早由Google公司在谷歌地图里运用,并敏捷风行。AJAX是不能跨域的,如需跨域,能够运用document.

Ajax及其事情道理

AJAX 是一种与服务器交流数据无需革新网页的手艺,最早由Google公司在谷歌地图里运用,并敏捷风行。

AJAX是不能跨域的,如需跨域,能够运用document.domain='a.com';或许运用服务器代办,代办XMLHttpRequest文件

AJAX是基于现有的Internet规范,而且团结运用它们:

XMLHttpRequest 对象 (异步的与服务器交流数据)
Javascript/DOM (信息显现/交互)
CSS (给数据定义款式)
XML (作为转换数据的花样)

《Javascript进修总结(七)Ajax和Http状态字》

建立 XMLHttpRequest 对象

一切当代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。

建立Ajax对象:

//IE6以上
var oAjax = new XMLHttpRequest();
//IE6
var oAjax =new ActiveXObject("Microsoft.XMLHTTP")

衔接服务器

oAjax.open(要领,url,是不是异步)

我们都晓得,Ajax即“Asynchronous Javascript And XML”(异步Javascript和XML),是指一种建立交互式网页运用的网页开辟手艺。所以,Ajax生成就是事情在异步情势的(异步为true,同步false)

同步和异步

同步是指:发送方发出数据后,等吸收方发还相应今后才发下一个数据包的通信体式格局。
异步是指:发送方发出数据后,不等吸收方发还相应,接着发送下个数据包的通信体式格局。
(简朴点说:同步就是只能一件一件事的来做,而异步就是能够多件事同时举行)

发送要求send()






GET 照样 POST?

与 POST 比拟,GET 更简朴也更快,而且在大部分状况下都能用。

但是,在以下状况中,请运用 POST 要求:

没法运用缓存文件(更新服务器上的文件或数据库)
向服务器发送大批数据(POST 没有数据量限定)
发送包含未知字符的用户输入时,POST 比 GET 更稳固也更牢靠

吸收返回信息

oAjax.Onreadystatechange= function(){ //当要求状况转变时要挪用的事宜处置惩罚器
alert(oAjax.readystate);
}

只需readyState属性的值发作变化时,便会触发一次readyStatechange事宜。能够应用这个事宜来检测每次状况变化后readyState的值。一般,我们只对readyState值为4的阶段感兴趣,由于这时刻一切数据都已停当,不过,必须在挪用open()之前指定onreadystatechange事宜处置惩罚顺序才确保跨浏览器兼容性。下面来看一个例子:

var xhr = createXHR();
xhr.Onreadystatechange= function () {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status <300) || xhr.status == 304) {
alert(xhr.statusText);
} else {
alert("Request was unsuccessful: " + xhr.status);
}
}
};
xhr.open("get", "example.txt", true);
xhr.send(null);

XHR对象

XMLHttpRequest这个对象的属性:

它的属性有:

onreadystatechange 每次状况转变所触发事宜的事宜处置惩罚顺序。
responseText 从服务器历程返回数据的字符串情势。
responseXML 从服务器历程返回的DOM兼容的文档数据对象。
status 从服务器返回的数字代码,比方罕见的404(未找到)和200(已停当)
status Text 陪伴状况码的字符串信息

当XHR对象把一个HTTP要求发送到服务器的历程中会阅历几个状况,直到要求被处置惩罚,然后才吸收一个回应。readyState就是XHR要求的状况属性,它本身有5个属性值:

0(未初始化)还没有挪用open()要领
1(载入)已挪用send()要领,正在发送要求
2(载入完成)send()要领完成,已收到悉数相应内容
3(剖析)正在剖析相应内容
4(完成)相应内容剖析完成,能够再客户端运用了

http状况码

1字头:音讯。这一范例的状况码,代表要求已被接收,须要继承处置惩罚。
2字头:胜利。这一范例的状况码,代表要求已胜利被服务器吸收、明白、并接收。
3字头:重定向。这类状况码代表须要客户端采纳进一步的操纵才完成要求。
4字头:客户端毛病。这类状况码代表了客户端看起来可能发作毛病,阻碍了服务器的处置惩罚。
5字头:服务器毛病。这类状况码代表了服务器在处置惩罚要求的历程中有毛病或许非常状况发作

另附:http状况码详解
w3cschool HTTP 状况音讯:http://www.w3school.com.cn/ta&#8230;

《Javascript进修总结(七)Ajax和Http状态字》

status和statusText

  statusText是相应返回的文本信息,仅当readyState值为3或4的时刻才运用。当readyState为别的值时视图存取statusText属性将激发非常。

XHR的要领

要领形貌
abort()致使当前正在实行的要求被作废
getAllResponseHeaders()返回包含一切相应头的称号和值的单个字符
getResponseHeader(name)返回相应头中指定的称号和值
open(method,url,async,username,pwd)设置HTTP要领(get或post)等
send(content)发出带有指定主体内容的要求
setRequestHeader(name,value)运用指定的称号和值设置要求头


jQuery中的Ajax

.load()要领是部分要领,由于他须要一个包含元素的jQuery对象作为前缀,而$.get()$.post()是全局要领,无需指定某个元素,关于用处而言,.load()适合做静态文件的异步猎取,而关于须要通报参数到服务器页面的,$.get()$.post()越发适宜。

GET和POST传入的data是一个键值对 对象,差别的是GET传入的data是经由过程地点栏传输的,而POST是经由过程表单提交的,

$(function () {
$("input").click(function () {
$.get('test.php?url=baidu.com', function (response,status,xhr) {
$('#box').html(response);
})
})
});

POST提交不能运用url传参。post提交能够运用字符串情势的键值对情势传参,自动转换为http音讯实体传参

$(function () {
$("input").click(function () {
$.post('test.php','url=baidu.com', function (response,status,xhr) {
$('#box').html(response);
})
})
});

//post提交能够运用对象键值对
$(function () {
$("input").click(function () {
$.post('test.php',{
url:'baidu.com'//post提交能够运用对象键值对
}, function (response,status,xhr) {
$('#box').html(response);
})
})
});

$.get()要领有四个参数,前面三个参数和.load()一样,多了一个第四参数type,即服务器返回的内容花样,包含xml,json,script,html,text等,第一个参数为必选参数,背面三个为可选参数

$.ajax()是一切Ajax要领中最底层的要领,一切其他要领都是基于$.ajax()要领的封装,这个要领只要一个参数,通报一个
各个功用键值对的对象。

$.ajax()要领对象参数列表

参数范例申明
urlstring发送要求的地点
typestring要求要领,默许GET
timeoutNumber设置要求超时的时候
dataObject或String发送到服务器的对象,键值对字符串或对象
datatypeString返回的数据范例,比方html,XML,json等
successFunction要求胜利后挪用的回调函数
completeFunction要求完成后挪用的回调函数
errorFunction要求失利后挪用的回调函数

$(function () {
$("input").click(function () {
$.ajax({
type : "POST",
url: 'test.php',
data:{
url: 'baidu.com'
},
success : function(response,status,xhr){
$('#box').html(response);
}
})
})
});

表单序列化

Ajax用的最多的处所莫过于表单操纵,而传统的表单操纵是经由过程submit提交将数据传输到服务器,假如运用Ajax异步处置惩罚
的话,我们须要将每一个表单元素猎取才提交,如许事情效力就大大下降



用户名:
邮件:





表单元素迥殊多的状况下应采纳表单序列化,即data:$(“form”).serialize();//获得的是字符串键值对,而且对url举行编码

serialize()要领不只能够序列化表单内的元素,还能够直接猎取单选框,复选框和下拉列表框等内容



用户名:
邮件:








传统Ajax题目

传统的ajax有以下的题目:

1、能够无革新转变页面内容,但没法转变页面URL
2、为了更好的可接见性,内容发作转变后,一般转变URL的hash
3、hash的体式格局不能很好的处置惩罚浏览器的行进、退却等题目
4、进而浏览器引入了onhashchange的接口,不支撑的浏览器只能定时去推断hash是不是转变
5、但这类体式格局对搜索引擎很不友爱
6、twitter和google商定了运用#!xxx(即hash第一个字符为!),搜索引擎举行支撑。

本人兼职前端付费手艺顾问,如需协助请加本人微信hawx1993,非诚勿扰

1.为初学前端而不晓得怎么做项目的你指点
2.指点并踏实你的Javascript基本
3.帮你预备口试并供应相干指点性看法
4.为你的前端之路供应极具建设性的看法
5.让你的进修更有效力,对知识点的明白越发透辟
6.不解答能够百度到的答案,也不解答你碰到的bug
付费(每个月仅需99)能让我更有耐烦和责任心的为你指点,让两边发生更优越的合作

推荐阅读
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
author-avatar
乐在hhh其中
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有