AJAX简历系统附js文件
代码片段如下:
作者:skyz
功能:创建http请求对象,用于处理JavaScript客户端ajax交互
日期:2006年3月20日
函数:HttpRequest()
这是一个用于创建http请求对象的函数。该函数的主要目的是为JavaScript客户端与服务器之间的异步交互提供支持。让我们深入了解其内部结构和功能。
该HttpRequest对象包含以下属性和方法:
属性:
1. _httpRequest:表示HttpRequest请求对象。
2. _callBack:回调函数。
3. _domResult:表示结果是否为dom对象或文本字符串。
4. _requestData:请求数据。
5. _requestResult:HttpRequest结果。
6. _stateString:当前请求状态字符串。
7. _error:表示当前是否出错。
8. _callBackPara:当前回调函数参数。
内部方法:
init()函数是该HttpRequest对象的初始化函数。它的主要任务是创建HttpRequest对象并设置相关属性。以下是其关键步骤:
1. 判断浏览器是否支持XMLHttpRequest对象。如果支持,则创建新的XMLHttpRequest对象并设置请求MIME类型为text/xml。
在我们深入请求的奇妙世界时,有一个核心的对象负责执行这一系列动作。它如同一座无形的桥梁,连接着我们与远程服务器之间的信息交流。下面,让我们揭开它的神秘面纱,走进它的内部逻辑。
这个对象具有一套完整的请求处理流程,从设置请求头、发送数据到获取响应结果,无一不精。它为我们提供了一个简单的接口,让我们无需深入了解底层的复杂性。
一、设置请求头
当我们想要为请求添加一些额外的信息时,可以通过这个对象的`doSetRequestHeader`方法轻松实现。例如,我们可以设置`Content-Type`为`application/json`来告诉服务器我们发送的数据是JSON格式的。只需提供参数`namePar`(请求头的名称)和`valuePar`(请求头的值),它就会默默地为我们完成设置工作。
二、设置请求数据
有时候,我们需要向服务器发送一些数据。这时,可以使用`doSetRequestData`方法。无论你需要发送的是表单数据、JSON对象还是其他任何形式的信息,只需提供`dataPar`参数,它就会将这些数据准备妥当,随时待发。
三、获取请求对象
通过调用`_getRequestObj`方法,我们可以获取到底层的请求对象。这个对象包含了与服务器通信的所有细节,是我们与服务器沟通的桥梁。
四、设置回调函数及参数
使用`doSetCallBack`方法,我们可以为请求设置回调函数以及额外的参数。当请求完成后,这个回调函数会被调用,同时传递请求的结果和额外的参数。这使得我们可以灵活地处理请求的结果。
五、获取当前状态与错误信息
通过`doGetState`和`doGetError`方法,我们可以获取到请求的当前状态以及错误信息。这对于调试和错误处理非常有帮助。
六、发送请求
使用`doSendResuest`方法发送请求。这个方法接受几个参数:请求的URL路径、请求方法(默认为GET)、请求对象、结果类型(是否为DOM或字符串),以及一个异步标志。这个方法会启动请求流程,并与服务器建立连接。当状态改变时,会触发回调函数处理响应结果。
```javascript
// 当发起网络请求时,根据不同的状态进行提示和处理
function startRequest(obj, methodPar, urlPar, asyPar) {
try {
// 设置请求状态信息
if (obj._readyStateTmp == 0) {
obj._setMessage("准备发起请求...");
} else if (obj._readyStateTmp == 1) {
obj._setMessage("正在读取中......");
} else if (obj._readyStateTmp == 2) {
obj._setMessage("已经读取过数据!");
} else if (obj._readyStateTmp == 3) {
obj._setMessage("正在切换或处理数据......");
} else if (obj._readyStateTmp == 4) { // 请求已完成或发生错误的状态
var statusTmp = a.status; // 获取HTTP状态码
if (statusTmp == 404) { // 页面未找到
obj._setMessage("未找到请求页面!", true); // 设置错误提示信息,并标记为错误状态
} else if (window.location.hrefdexOf("http") == -1 || statusTmp == 200) { // 判断当前页面是否为HTTP页面或者请求成功
obj._setMessage("请求完成!"); // 设置成功提示信息
// 处理返回结果,根据是否有DOM结果和XMLHttpRequest对象来设置返回内容类型
if (this._domResult && window.XMLHttpRequest) {
obj._requestResult = a.responseXml; // 如果是XML格式,则存储XML数据
} else {
obj._requestResult = a.responseText; // 如果是文本格式,则存储文本数据
}
// 如果有回调函数,则执行回调函数处理返回结果
if (obj._callBack) {
obj.doCallBack();
}
} else { // 其他未知错误情况
obj._setMessage("未知错误!"); // 设置错误提示信息,并标记为错误状态
}
} else { // 其他未知状态处理
obj._setMessage("未知状态错误!"); // 设置未知状态错误提示信息,并标记为错误状态
}
// 打开请求并发送数据
a.open(methodPar, urlPar, asyPar);
// 可选:设置请求头信息(这里未使用)
// a.setRequestHeader("If-Modified-Since","0");
a.send(obj._requestData); // 发送请求数据
编程语言
- AJAX简历系统附js文件
- Vue监听事件实现计数点击依次增加的方法
- Vue.js移动端左滑删除组件的实现代码
- JS实现可拖曳、可关闭的弹窗效果
- 常用正则表达式语法例句
- 浅谈Node.js:理解stream
- jQuery实现参数自定义的文字跑马灯效果
- ASP.NET MVC文件上传教程(二)
- Struts1之url截取_动力节点Java学院整理
- JavaScript实现256色转灰度图
- SqlCommandBuilder类批量更新excel或者CSV数据的方法
- php通过排列组合实现1到9数字相加都等于20的方法
- 揭秘SQL Server 2014有哪些新特性(1)-内存数据库
- VS2015下OpenGL库配置教程
- vue.js实现的全选与全不选功能示例【基于element
- 关于vue中watch检测到不到对象属性的变化的解决方