什么是AJAX?
这里的AJAX不是希腊神话里的英雄,也不是清洁剂品牌,更不是一门语言,而是指异步Javascript和XML(Asynchronous JavaScript And XML),这里的XML(数据格式)也可以是纯文本(Plain Text)或是JSON。简单的说,就是使用XMLHttpRequest对象和服务器端交换数据(以XML或是JSON等格式),使用JavaScript处理数据并更新页面内容。
为什么要使用AJAX?
借助AJAX,我们可以实现:
在不重载页面的情况下,向服务器发送请求;
动态加载数据,即在后台交换数据。
比方说,一个便签本应用,当你在表单里填写好内容,点击新建,这时不会有页面跳转,内容即时更新,数据在后台写入数据库。
AJAX让Web APP更像是APP。
使用jQuery实现AJAX
使用jQuery可以简化这个过程。下面是一个简单的例子,在两个输入框里输入数字,按下计算按钮,JavaScript发送数据,在sever端(视图函数)获取数据,将两个数相加的结果返回,JavaScript获取返回的数据并将其显示在页面上。
1、加载jQuery
把jQuery放到static文件夹,然后加载它:
<script src="{{ url_for('static', filename='jquery.js') }}"></script>
或是从CDN加载(你可能需要更换其他站点提供的CDN资源):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
2、设置url变量
在jQuery里没法使用url_for函数获取地址,所以我们使用request设置一个动态的全局变量:
<script type=text/javascript> $SCRIPT_ROOT = {{ request.script_root|tojson|safe }}; </script>
两个输入框,一个按钮:
<h1>Add Two Number</h1> <p> <input type="text" size="5" name="a"> + <input type="text" size="5" name="b"> = <span id="result">?</span> </p> <button id="calculate">Calculate!</button>
3、使用getJSON方法发送和获取数据
<script type=text/javascript> $(function() { $('a#calculate').bind('click', function() { $.getJSON($SCRIPT_ROOT + '/calculate', { a: $('input[name="a"]').val(), b: $('input[name="b"]').val() }, function(data) { $("#result").text(data.result); }); return false; }); }); </script>
$.getJSON(url, data, func)发送一个GET请求,其中url是你要处理数据的视图函数的url,data是返回的数据,func是处理数据的函数。
JSON是JavaScript Object Notation(JavaScript对象表示法)的缩写,一种数据格式,形态上类似Python的字典,以键值对的形式存储数据(符号也是大括号)。
4、获取、处理并返回JSON数据的视图函数
from flask import Flask, jsonify, render_template, request app = Flask(__name__) @app.route('/calculate') def add_numbers(): a = request.args.get('a', 0, type=int) # 第二个参数作为默认值 b = request.args.get('b', 0, type=int) return jsonify(result=a + b) @app.route('/') def index(): return render_template('index.html')
使用Flask提供的jsonify()函数返回JSON数据。
这个例子改编自Flask官方的例子,完整的源码见:https://github.com/pallets/flask/blob/master/examples/jqueryexample
本文向大家介绍Ajax实现动态加载数据,包括了Ajax实现动态加载数据的使用技巧和注意事项,需要的朋友参考一下 前言: 1.这个随笔实现了一个Ajax动态加载的例子。 2.使用.net 的MVC框架实现。 3.这个例子重点在前后台交互,其它略写。 开始: 1.控制器ActionResult代码(用于显示页面) 2.前台页面主要代码 说明:这个就是要展示数据的表格,里面的字段要和你建好的模型匹配。
本文向大家介绍JQuery实现Ajax加载图片的方法,包括了JQuery实现Ajax加载图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery实现Ajax加载图片的方法。分享给大家供大家参考,具体如下: 最近在学习JQuery,想从原理上模拟一下无刷新的相册浏览。 最先想到的思路是利用缓存,也就是先显示提示消息,然后get图片,在get完的时候回调,将img标签的src改掉
本文向大家介绍jQuery动态加载css文件实现方法,包括了jQuery动态加载css文件实现方法的使用技巧和注意事项,需要的朋友参考一下 有时我们可能会需要使用 jQuery 来加载一个外部的 css 文件,如在切换页面布局时。思路是创建一个 link 元素,并将它添加到 标记中即可,下边首先看看怎么使用 jQuery 来实现。 下边是我喜欢的写法: 有些朋友可能会使用下边的写法,只是形式有些小
本文向大家介绍动态加载jQuery的方法,包括了动态加载jQuery的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了动态加载jQuery的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的jQuery程序设计有所帮助。
本文向大家介绍php+ajax实现无刷新动态加载数据技术,包括了php+ajax实现无刷新动态加载数据技术的使用技巧和注意事项,需要的朋友参考一下 我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览。这种技术我暂且称它为滚屏加载技术。我们发现很多网站用到这种技术,必应图片搜索、新浪微博、QQ空间等将该技术应用得淋漓尽致。 滚屏加载技术,就是使用Javasc
本文向大家介绍jquery滚动加载数据的方法,包括了jquery滚动加载数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery滚动加载数据的方法。分享给大家供大家参考。具体分析如下: 我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览。这种技术我暂且称它为滚屏加载技术,我们发现很多网站用到这种技术,例如新浪微博、QQ空间等。 代码如