Ajax,指的是网页异步刷新,一般的实现均为js代码向server发POST请求,然后将收到的结果返回在页面上。

 

这里我编写一个简单的页面,ajax.html

<html>
<head>
<title>测试Ajax</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <style type="text/css">
#result{
border: 10px;
font-size: 50px;
background: #ff0fef;
} </style>
</head>
<body> <input type="text" id="word" > <br>
<button id="foo">点击</button> <div id="result"> </div> <script type="text/javascript">
$("#foo").click(function()
{
var word = $("#word").val(); //获取文本框的输入 //把word发给后台php程序
//返回的数据放在data中,返回状态放在status
$.post("/test",{message:word}, function(data,status){
if(status == "success")
{
$("#result").html(data);
}
else
{
alert("Ajax 失败");
}
});
}); </script> </body>
</html>

注意,从上面的代码可以看出,数据存储在“message”字段中。

所以后台从message中解析数据,我们记得是get_argument方法。

所以后台的python代码为:

import tornado.ioloop
import tornado.web class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("ajax.html") class AjaxHandler(tornado.web.RequestHandler):
def post(self):
#self.write("hello world")
self.write(self.get_argument("message")) application = tornado.web.Application([
(r"/", MainHandler),
(r"/test", AjaxHandler),
]) if __name__ == '__main__':
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()

访问首页,就渲染ajax前端页面,而AjaxHandler处理真正的ajax异步请求。

 

这里总结下流程:

1.用户访问home页面,tornado使用MainHandler返回其中的ajax.html页面

2.用户填写信息,点击按钮,因为之前加载js代码,注册了回调函数,所以触发Ajax

3.js向后台发post请求。

4.根据请求的URL,tornado使用AjaxHandler处理post请求,将信息原样返回。

5.js收到数据,调用之前的回调函数,将结果显示在html页面上。

最新文章

  1. 初始Java 第一课程DVD项目
  2. 油猴 greasemonkey 背景音乐 火狐 chrome 背景音乐
  3. Openwrt dnsmasq 设置要点
  4. regression build test
  5. input上传图片 显示预览信息
  6. SQLite使用教程4 创建数据库
  7. Glibc和GCC,ARM-LINUX-GCC的关系
  8. webstrom命令大全
  9. 使用cnpm搭建私有NPM仓库 发布npm包
  10. nginx之 nginx虚拟机配置
  11. 转载:Centos升级gcc
  12. Python之--paramiko实例
  13. 《团队作业第一周》五小福团队作业——UNO
  14. [LeetCode] N-ary Tree Postorder Traversal N叉树的后序遍历
  15. Redis 如何分析慢查询操作?
  16. edu30F. Forbidden Indices
  17. oc语言的Foundation框架(学习笔记1)
  18. TCP/UDP OSI_layer 4
  19. 【PAT】B1066 图像过滤(15 分)
  20. Java 汇编代码

热门文章

  1. Java多态机制和继承中重写重载
  2. PHP极速开发框架LotusAdmin page版发布
  3. AC日记——[NOIP2015]运输计划 cogs 2109
  4. Nessus home与Nexpose community 对比
  5. HDU 1020.Encoding-字符压缩
  6. ZCMU训练赛-J(循环节+字符串处理)
  7. UVa1599 Ideal Path(双向bfs+字典序+非简单图的最短路+队列判重)
  8. 11.5NOIP2018提高组模拟题
  9. SHELL 在指定行的前/后插入指定内容
  10. RPD Volume 168 Issue 4 March 2016 评论2