- 浏览: 69365 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
史上最全ajax详细注释!(原生JS,javascript版,非jquery)
<!--more-->var xmlHttp
function sajax(typ,str)
//定义一个函数:showHint,函数showHint有两个参数typ,str
{
type=typ;
//声明一个变量type,并将函数showHint的一个参数typ赋值给变量type
if (str.length==0)
//判断函数showHint的第二个参数(也就是我们按下键盘时当前表单项的当前值)的长度,如果长度等于零,那么执行以下语句
{
document.getElementById(type).innerHTML=""
//接上,如果参数长度是零,则替换ID为typ(用来代称第一个传进来参数typ的值)的容器的内容替换为空(空字符,也就是"")
//document,英文含义,当是名词时(n),是文件文档的意思,在JS中,代指我们当前的HTML文档对象,每个载入浏览器的 HTML 文档都会成为 Document 对象。
//既然是对象,就有属性,方法,此处用到的方法getElementById()的作用是查找具有指定的唯一 ID 的元素
//当我们找到这个元素时候,innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML,例如:我们的reg.php中的ID为‘sna’的元素{<span id="sna">*(最多30个字符)</span>}(大括号中的,不包含大括号)
//我们通过设置元素sna的innerHTML属性,就可替换标签中的内容,例如
//当前内容为{<span id="sna">*(最多30个字符)</span>}
//我们通过innerHTML属性设置,当前假设执行如下语句:document.getElementById("sna").innerHTML="",则内容变为""
//当前为{<span id="sna"></span>},如果执行如下语句:document.getElementById("sna").innerHTML="I love U",
//则内容变为I love U,当前为{<span id="sna">I love U</span>},也就是说内容变化了而容器没变
//内容不限定为字符,HTML代码也可,例如执行如下语句:document.getElementById("sna").innerHTML="<br>HTML也是可以的<br>"之后,
//则变为{<span id="sna"><br>HTML也是可以的<br></span>}
return
//返回,如果这个不懂的话.........>_<
}
xmlHttp=GetXmlHttpObject()
//声明变量xmlHttp,xmlHttp的值为自定义函数GetXmlHttpObject()的返回值,
//GetXmlHttpObject()函数的作用下面详述!~
if (xmlHttp==null)
//如果我们通过以上语句‘xmlHttp=GetXmlHttpObject()’执行之后,变量xmlHttp(一个对象)的值为null也就是空,那么执行如下语句块
{
alert ("浏览器不支持!")
//当xmlHttp==null成立的时候说明当前浏览器不支持,弹出带有“浏览器不支持!”字样的提示框!
//alert:alert() 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。语法:alert(message)。参数解释:要在 window 上弹出的对话框中显示的纯文本(而非 HTML 文本)
return
//...........谁问我,我、我、我......
}
var url="uchk1.php"
//声明一个变量url,赋值....
url=url+"?q="+str;
//拼接字符串......str是什么?自己看
url= url +"&tp="+typ
//拼接字符串......typ是什么?自己看,能用type吗?自己想
url=url+"&sid="+Math.random();
//拼接字符串,我们拼接的字符串是作为URL处理的,为了防止调用缓存,所以加上了一个随机数,以保证每次结果均不相同
//Math,对象,是JS中的 Math对象,用于执行数学任务,其中有random() 方法。
//random() 方法可返回介于 0 ~ 1 之间的一个随机数。语法如下:Math.random()。返回值:0.0 ~ 1.0 之间的一个伪随机数。例如:0.2355415636412345。
xmlHttp.onreadystatechange=stateChanged;
//xmlHttp中的onreadystatechange属性
//onreadystatechange 属性存有处理服务器响应的函数。
//下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:
//xmlHttp.onreadystatechange=function()
// {
// // 我们需要在这里写一些代码,写什么,你自己决定
// }
//readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。
//这是 readyState 属性可能的值:
//状态 描述
//0 请求未初始化(在调用 open() 之前)
//1 请求已提出(调用 send() 之前)
//2 请求已发送(这里通常可以从响应得到内容头部)
//3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
//4 请求已完成(可以访问服务器响应并使用它)
//我们要向这个 onreadystatechange 函数添加一条 If 语句,来测试我们的响应是否已完成(意味着可获得数据):
//xmlHttp.onreadystatechange=function()
// {
//if(xmlHttp.readyState==4)
// {
// 从服务器的response获得数据,这里用到了另外一个属性,responseText 属性
// }
//}
//可以通过 responseText 属性来取回由服务器返回的数据。
//例如,在如下代码中,我们将把时间文本框的值设置为等于 responseText:
//xmlHttp.onreadystatechange=function()
// {
//if(xmlHttp.readyState==4)
// {
// document.myForm.time.value=xmlHttp.responseText;
// }
//}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
//以上两句一起说明
/*
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
方法 描述
open(method,url,async) 规定请求的类型、URL 以及是否异步处理请求。
method:请求的类型;GET 或 POST
url:文件在服务器上的位置
async:true(异步)或 false(同步)
send(string)
将请求发送到服务器。
string:仅用于 POST 请求
GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
GET 请求
一个简单的 GET 请求:
xmlhttp.open("GET","uchk.php",true);//这里的"uchk.php"可使用我们拼接的URL
xmlhttp.send();
POST 请求
一个简单 POST 请求:
xmlhttp.open("POST","uchk.php",true);
xmlhttp.send();
如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:
xmlhttp.open("POST","ajax_test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");
方法 描述
setRequestHeader(header,value) 向请求添加 HTTP 头。
header: 规定头的名称
value: 规定头的值
*/
}
function stateChanged()
//自定义函数,此函数每当 readyState 改变时就会被执行,此函数对应onreadystatechange 函数。
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") // xmlHttp.status =200
//请参考以上说明
{
document.getElementById(type).innerHTML = xmlHttp.responseText;
//请参考以上说明
}
return true;
//返回
}
function GetXmlHttpObject()
//自定义函数,此函数用来创建一个AJAX对象,并通过return返回,此函数有返回值
{
var xmlHttp=null;
//首先声明变量,默认值是null
try
/*
try...catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。
try//可理解为尝试执行{}中的代码块,如果不成功或者有错误,就抛出异常
{
//在此运行代码
}
catch(err)
这里处理抛出的异常,也就是错误,错误在下面{}中处理
{
//在此处理错误
}
*/
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
//尝试创建XMLHttpRequest对象,
/*
什么是 XMLHttpRequest 对象?
XMLHttpRequest 对象用于在后台与服务器交换数据。
XMLHttpRequest 对象是开发者的梦想,因为您能够:
在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据
所有现代的浏览器都支持 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象
所有现代浏览器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都内建了 XMLHttpRequest 对象。
通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:
xmlhttp=new XMLHttpRequest();
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
*/
}
catch (e)
{
/*如果创建 XMLHttpRequest 对象失败,则进入此模块处理错误,这个是一个嵌套的模式。在 catch 中嵌套了一个try...catch
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象,创建 XMLHttpRequest 对象失败,
所以我们就尝试创建 ActiveX 对象
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE6可用
或者
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//IE5可用
*/
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
转载自:http://www.9958.pw/post/ajax_js_not_jq
发表评论
-
项目管理之如何控制项目进度和质量
2016-07-16 22:37 614控制项目进度和质量首先在整体上要有一个合理清晰的流程,并且在整 ... -
15 个非常棒的 CSS3 效果教程
2016-07-03 20:42 5961. 创建一个漂亮的图标 这个教程将教你如何用纯 C ... -
前20名的不安全密码(需要避免)
2016-07-01 21:41 524下图举例说明了一些人们作出选择密码时最常用的错误,以及如何使你 ... -
js实现图片放大缩小后进行的复杂排序
2016-06-30 21:57 595首先,我们来讲下需求: 1.图片分为大小和小图,大图占四个小 ... -
php千万级pv架构经验分享
2016-06-28 22:04 1303转载自:http://www.9958.pw/post/ph ... -
ecshop 时间问题请注意 /data/config.php
2016-06-27 22:43 881ecshop 处理时间,绕来绕去, 后台的时区设置, 并非以 ... -
目前比较流行的二维码的生成
2016-06-26 23:55 594最近比较流行二维码,自己百度了一下发现有一个很不错的实现方法使 ... -
如何阻止移动设备(手机,pad)浏览器双击放大网页?
2016-06-24 22:29 1224现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置 ... -
PHP解决Xss跨域攻击以及sql注入等危险字符串方案类库
2016-06-19 21:45 789由于该模块在项目中的要求是 不能提示任何信息,也不作断点操作, ... -
网站敏感骂人词库及算法(附6仟个敏感词)
2016-06-16 22:07 5915原文:「我今天开着张三丰田去上班 」 strtr:「我今天开 ... -
jQuery制作元素在屏幕中水平垂直居中效果
2016-06-14 21:56 608jQuery.fn.center = function () ... -
纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
2016-06-11 21:32 9921、正方形 CSS代码如下: #square { widt ... -
分享一个JQuery写的点击上下滚动的小例子
2016-06-08 22:00 511效果图 演示地址 源码下载 <!--more--> ... -
精美的国外扁平化网页设计作品
2016-06-05 16:02 610Who Wanna <!--more--> ... -
提交您的博客到各大网站
2016-06-03 21:04 389各大搜索引擎网站登录入口: Google收录入口:http:/ ... -
推荐7个 CSS3 制作的创意下拉菜单效果
2016-06-02 22:15 4091. 使用 jQuery 和 CSS3 制作向下滑动的导航菜单 ... -
Dev Http Client(Chrome的HTTP插件)
2016-05-31 22:34 759Dev Http Client(Chrome的HTTP插件) ... -
好的用户界面-界面设计的一些技巧
2016-05-29 16:24 4051 尽量使用单列而不是 ... -
项目组制定的一份页面优化指南
2016-05-27 21:40 3681.文档声明 文档声明必须置于网页的HTML部分的最开始,标签 ... -
mysql数据库sql优化原则
2016-05-26 21:20 335这里的原则 只是针对mysql数据库,其他的数据库 某些是殊途 ...
相关推荐
3. 抽象DOM操作:jQuery封装了大量的DOM操作,如$(...).append()用于插入元素,$(...).remove()用于删除元素,简化了原生JavaScript的复杂性。 二、jQuery构造函数 在jQuery源码中,构造函数`jQuery()`或简写`$()`...
jQuery的事件系统封装了原生JavaScript的事件处理,如`.on()`和`.off()`方法,通过事件委托提高了性能。源码注释揭示了事件绑定和解绑的实现机制,以及事件冒泡和捕获的处理。 4. **动画效果** jQuery的动画功能...
综上所述,jQuery 1.9.1版本是开发者常用的一个版本,它提供了完善的DOM操作、事件处理、动画和Ajax等功能,结合js和min.js两种形式,满足了开发与优化的需求。通过深入理解并熟练应用jQuery,开发者可以高效地构建...
《jQuery 2.1.4:JavaScript 的强大库与优化版本》 在Web开发领域,jQuery是一个不可或缺的JavaScript库,以其简洁的API和强大的功能深受开发者喜爱。标题中提到的"jquery-2.1.4.js"和"jquery-2.1.4.min.js"正是这...
相比于原生JavaScript,jQuery的事件处理更加灵活,支持事件委托,只需在一个父元素上绑定事件,即可监听其子元素的触发。 动画效果是jQuery的另一大亮点,`.fadeIn()`, `.slideUp()`, `.animate()`等方法使得创建...
首先,`jquery-1.11.3.js`是未压缩的完整源代码版本,它包含详细的注释,便于开发者学习和调试。而`jquery-1.11.3.min.js`是经过压缩和优化的版本,用于生产环境,以提高网页加载速度。 jQuery的核心理念是“写得少...
这个压缩包包含的 `jquery-3.1.1.min.js` 文件是 jQuery 的一个特定版本,即3.1.1版本的压缩优化版。"min" 表示这个文件已经过最小化处理,移除了注释和不必要的空白字符,降低了文件大小,提高了网页加载速度。在...
首先,jQuery 1.12.4.min.js是jQuery库的一个压缩优化版本,"min"代表最小化,意味着这个文件已经过压缩处理,去除了不必要的空格和注释,以减小文件体积,提高页面加载速度。对于大型网站或高流量应用来说,这种...
在这个标题为"jquery-1.8.0min.js&&jquery-1.8.0.js"的资源包中,包含了两个版本的jQuery库——未压缩版的jquery-1.8.0.js和压缩版的jquery-1.8.0.min.js,它们都是jQuery 1.8.0的实现,供开发者根据需求选择使用。...
jQuery是世界上最流行的JavaScript库之一,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。在给定的压缩包中,我们有两个文件:`jquery-3.2.1.js` 和 `jquery-3.2.1.min.js`。这两个文件都是...
jQuery是JavaScript库中的一个经典之作,它极大地简化了DOM操作、事件处理、动画制作以及Ajax交互等任务。这里我们关注的是jQuery的3.6.0版本,这是一个经过广泛测试和优化的版本,提供了稳定性和性能的提升。 首先...
本篇将详细探讨jQuery 1.4.2这一经典版本,以及其对应的压缩文件jquery.min-1.4.2.js。 一、jQuery的核心理念 jQuery的核心理念是“Write Less, Do More”,它通过提供丰富的选择器、DOM操作、事件处理、动画效果...
总结,jQuery 2.1.4.min.js是jQuery库的一个高效压缩版,集成了DOM操作、事件处理、动画效果、Ajax交互等功能,并具有优秀的性能和广泛的社区支持。对于Web开发者来说,掌握并灵活运用jQuery能够大大提高开发效率,...
综上所述,`jqery-1.11.1.min.js`和`jquery-1.11.1.js`分别对应了jQuery库的生产环境和开发环境版本,它们在前端开发中扮演着不可或缺的角色,提供了一整套工具和方法来简化HTML文档操作、事件处理和AJAX通信。
jQuery是世界上最流行的JavaScript库之一,它极大地简化了HTML文档遍历、事件处理、动画和Ajax交互。本资源包含了jQuery的3.4.1版本的压缩版和未压缩版。 未压缩版(通常称为源码版)是供开发者阅读和调试用的,...
下面将详细探讨jQuery、JavaScript以及日期控件的相关知识。 首先,jQuery是一个强大的JavaScript库,它简化了JavaScript的DOM操作、事件处理、动画制作和Ajax交互。通过使用jQuery,开发者可以以更简洁、高效的...
本篇将详细探讨jQuery的核心特性,以及在“jquery.zip”压缩包中包含的两个关键文件——`jquery-1.6.2.js`和`jquery-1.6.2.min.js`。 首先,jQuery的主要目标是简化HTML文档遍历、事件处理、动画和Ajax交互。它通过...
- **压缩与优化**:`jquery-3.1.1.min.js`是jQuery 3.1.1的压缩版,通过删除注释、合并变量、缩短标识符等手段,大幅减小文件大小,有利于网站加载速度的提升。 - **生产环境首选**:在实际项目中,为了提高网页的...
此外,对于较新版本的jQuery或其他库,可能需要寻找对应版本的`-vsdoc.js`文件,或者使用更新的开发工具,如Visual Studio 2010及以后的版本,它们原生支持更多的JavaScript库和框架,包括jQuery,无需额外安装插件...
jQuery 是一款强大的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。本资源包含jQuery 1.8.3版本的核心代码文件及配套的手册,旨在帮助开发者深入理解和应用这一经典版本的...