Javascript与Ajax
不使用jquery来处理ajax请求该怎么做?
首先要明确html中的某些数据需要从服务端获得,也就是客户端向服务端请求(request)数据,服务端就响应(response)这个请求,把客户端要的数据给它。服务端返回的数据格式多样,即可以是字符串,也可以是数字,也可以是对象。客户端接到这些数据后按自己的需要处理后显示在Html页面上。这个处理工作就交给Javascript来做。
Javascript处理Ajax异步请求要注意三点:
1、创建一个新的XMLHttpRequest对象;
2、创建一个获取数据的函数;
3、创建一个回调函数;
我们的目标是在文本框内输入名字传递给服务端,经过计算后在当前页面显示从服务端送回的数据。


<!DOCTYPE html>
<html>
<body>
<a href="http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/">Ajax study</a>
</br>
Enter your name:
<input type="text" id="name" onChange="getInfo();" />
</br>
Show Ajax return data: <span id="getInfo"></span> <script type="text/javascript">
// javascript Ajax
// 创建新的请求对象
var request =new XMLHttpRequest(); // 获取数据
function getInfo(){
var name=document.getElementById('name').value;
var url="/get_info/"+escape(name);
// 打开请求
request.open("GET",url, true);
// 指定回调函数
request.onreadystatechange=updatePage;
// 发送请求(发送的内容为null表示通过Get请求)
request.send(null);
} // 回调函数(服务器向网页发起调用)
function updatePage(){
if(request.readyState==4){
if(request.status==200){
// 读取响应文本
var response=request.responseText;
// 可以处理返回的文本。若是json字符串则可转为对象以便处理。
// 转换为json对象的方式多种:
var jsonObj=eval('('+response+')');
// 或者:
var jsonobj=JSON.parse(response);
// 把数据返回给页面
document.getElementById('getInfo').innerHTML=jsonobj.name;
alert('You enter is : '+ jsonobj.name);
}
else if(request.status==404)
alert('request url does not exist.');
else
alert('error:status code is :' + request.status)
}
}
</script>
</body>
</html>
这里的
var response=request.responseText;
返回的就是一个字符串:
"{\n "age": 2,\n "name": "Hello world "\n}"
服务端代码:
# 这个显示 info.html 页面
@app.route('/info')
def xxx():
return render_template('info.html') # 这个是要执行的动作(必须要有个路由,html页面里的js需要这个url。函数名字随便起。)
@app.route('/get_info/<name>')
def x (name):
ls ={'name':name, 'age':2}
return jsonify(ls)
-- End --
Javascript与Ajax的更多相关文章
- 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)
其他网站开发相关资料 超强HTML和xhtml,CSS精品学习资料下载汇总 最新htm ...
- 初识JavaScript,Ajax,jQuery,并比较三者关系
一.基本认识 1.JavaScript 定义: javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态 ...
- JavaScript实现Ajax小结
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<TCP的三次握手和四次挥手> 作者主页:myvin 博主QQ:851399101(点击QQ和博主发起临 ...
- 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 ...
- javascript版Ajax请求
什么是Ajax请求,Ajax也就是“Asynchronous JavaScript and XML”(异步JavaScript和XML),无刷新数据读取.能减少流量的消耗,也提高了浏览的流畅性,给用户 ...
- javascript进阶——Ajax
统的Web 页面和应用中,用户每点击页面上的某个部分,浏览器就会向服务器发出一个请求,等待服务器做出响应,然后返回一个完整新网页,但在大多数情况下用户不得不忍受页面闪烁和长时间的等待.随着Web技术的 ...
- Javascript and AJAX with Yii(在yii 中使用 javascript 和ajax)
英文原文:http://www.yiiframework.com/wiki/394/javascript-and-ajax-with-yii /*** http://www.yiiframework. ...
- javascript实现ajax
什么是 ajax ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 htt ...
- JavaScript和ajax 跨域的案例
今天突然想看下JavaScript和ajax 跨域问题,然后百度看了一下,写一个demo出来 <!DOCTYPE html> <html xmlns="http://www ...
随机推荐
- A题进行时--浙大PAT 1021-1030
1021: #include<stdio.h> #include<string.h> #include<vector> #include<queue> ...
- EasyMock
使用 EasyMock 更轻松地进行测试 窥探EasyMock(1)基础使用篇 窥探EasyMock(2)进阶使用篇
- CodeForces 689C Mike and Chocolate Thieves (二分+数论)
Mike and Chocolate Thieves 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/G Description ...
- Java学习笔记(二):String
String 在Java中String是作为引用对象存在的一种数据类型,用来保存字符串. 实例化和赋值 //直接声明 String s1 = "Hello world!"; //通 ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- 实现控件WPF(4)----Grid控件实现六方格
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 利用Grid控件能很轻松帮助我们实现各种布局.上面就是一个通过Grid单元格 ...
- JavaScript DOM对象和JQuery对象相互转换
1.分析源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- Chrome插件开发 尝试2
在文章1中 尝试了开发chrome一个蛋疼的插件,而且必须要写 一坨令人费解的代码才能只能,今天来次清爽的开发:如图: 这是 "清爽模式" →_→ 我把popup.html与pop ...
- Codeforces Round #277 (Div. 2) A. Calculating Function 水题
A. Calculating Function Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/4 ...
- HDU 4348 To the moon 可持久化线段树,有时间戳的区间更新,区间求和
To the moonTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...