亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery實現Ajax功能分析【與Flask后臺交互】

2019-11-19 11:21:43
字體:
來源:轉載
供稿:網友

本文實例講述了jQuery實現Ajax功能。分享給大家供大家參考,具體如下:

jQuery 是一個小型的 JavaScript 庫,它通常被用來簡化 DOM 和 JavaScript 操作。通過在服務器和客戶端之間交換 JSON 數據是使得 Web 應用動態化的完美方式。

JSON 本身是一個很清量級的數據傳輸格式,非常近似于 Python 的原始數據類型 (數字、字符串、字典和鏈表等),這一數據格式被廣泛支持,而且非常容易解析。 它幾年前開始流行,然后迅速取代了 XML 在 Web 應用常用數據傳輸格式中的地位。

如果您使用 Python 2.6 以上版本,JSON 的解析庫是開箱即用的。在 Python 2.5 中您則必須從 PyPI 安裝 simplejson 庫。

加載 jQuery

為了使用 jQuery 您需要先下載它,然后將其放置在您應用的靜態文件夾中,并確認他被加載了。理想的情況下是,您有一個用于所有頁面的布局模板。要加載 jQuery 您只需要在這個布局模板中 <body> 標簽的最下方添加一個 script 標簽。

<script type=text/javascript src="{{ url_for('static', filename='jquery.js') }}"></script>

另一個加載 jQuery 的技巧是使用 Google 的 AJAX Libraries API :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script><script>window.jQuery || document.write('<script src="{{ url_for('static', filename='jquery.js') }}">/x3C/script>')</script>

在以上配置的情況下,您需要將 jQuery 放置到靜態文件夾當中作為一個備份。瀏覽器將會首先嘗試直接從 Google 加載 jQuery。如果您的用戶至少一次訪問過使用 Google 提供的的 jQuery 版本的話,瀏覽器就會緩存這個代碼,這樣您的網站就可以從中獲得加載更快的好處了。

我的站點在哪?

您知道您的應用在哪里運行么?如果您在開發過程當中,那么答案非常簡單: 它運行在本地端口,而且就在這個 URL 的根路徑位置。但是如果您后來決定將您的應喲ing移動到一個不同的未知怎么辦?比如 http://example.com/myapp ? 在服務器這邊,這從來不是一個問題,原因是我們使用的 url_for() 函數可以幫我們回答這個問題。但是如果我們在使用 jQuery 我們不應該將指向應用的路徑硬編碼到程序中,而是將它動態化。該如何做到這點呢?

一個簡單的技巧可能是為我們的頁面添加一個 script 標簽,然后設定一個全局變量作為一個應用根路徑的前綴。如下所示:

<script type=text/javascript> $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};</script>

這里的 |safe 是必要的。這樣 Jinja 才不會將 JSON 編碼的字符串以 HTML 的規則過濾處理掉。通常這種過濾是必要的,但是在 script 標簽塊當中有著不同于原先的過濾規則。

可能有用的信息

在 HTML 中, script 標簽被聲明為 CDATA 。這意味著 HTML 轉義實體將不會被解析。在 </script> 出現之前的所有內容都被當做腳本處理。這也意味著在 script 標簽的內容之中不應該出現 </ 字樣。|tojson 足以在這里完成正確的事情,他將會為您過濾掉斜杠({{ "</script>"|tojson|safe }} 將會被渲染成 "<//script>")。

JSON 視圖函數

現在讓我們創建一個服務端函數,這個服務端函數接收兩個數字形式的 URL 參數, 然后將這兩個數字相加并以 JSON 對象的形式返回給應用。這是一個相當可笑的例子, 您通常會在服務端直接實現這個功能。但是這是一個方便展示如何配合使用 jQuery 和 Flask 最簡單的例子了:

from flask import Flask, jsonify, render_template, requestapp = Flask(__name__)@app.route('/_add_numbers')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')

正如您所見,我們在這里添加了一個 index 函數,這個函數用于渲染一個模板。 這個模板將會按照上面的提供的方法加載 jQuery ,并且包含一個小表單用于提供加法運算的兩個數,同時表單還提供了用于激發服務器端函數的一個鏈接。

注意,這里我們使用不會拋出錯誤的 get() 方法。 如果對應的鍵不存在,一個默認值(這里是 0)將hi被返回。更進一步,我們還可以將值轉換為一個特定類型(就像我們這里的 int 類型)。這對于由腳本(APIs,JavaScript等)激發的代碼來說是個非常順手的工具,因為在這種情況下您不需要特別的錯誤報告。

HTML 部分

您的 index.html 要么繼承一個已經加載了 jQuery 且設定了 $SCRIPT_ROOT 環境變量的 layout.html 模板,要么自己在上方完成了這些事。以下是我們的小應用 (index.html) 所需的 HTML 代碼。請注意這里我們也將腳本直接寫入了 HTML。通常來講,將腳本代碼放置到一個獨立的腳本文件里是一個更好的點子。

<script type=text/javascript> $(function() {  $('a#calculate').bind('click', function() {   $.getJSON($SCRIPT_ROOT + '/_add_numbers', {    a: $('input[name="a"]').val(),    b: $('input[name="b"]').val()   }, function(data) {    $("#result").text(data.result);   });   return false;  }); });</script><h1>jQuery Example</h1><p><input type=text size=5 name=a> +  <input type=text size=5 name=b> =  <span id=result>?</span><p><a href=# id=calculate>calculate server side</a>

我們不會過多介紹 jQuery 使用的細節,僅僅對以上代買做一個快速的解釋:

  1. $(function() { ... }) 將會在瀏覽器加載完頁面的基礎內容之后立即執行。
  2. $('selector') 選擇一個用于操作的元素。
  3. element.bind('event', func) 指定元素被單擊時運行的函數,如果這個函數返回 false ,那么單擊操作的默認行為將被取消。在本例中,點擊操作的默認行為是導航到 # 鏈接標簽。
  4. $.getJSON(url, data, func) 發送一個 GET 請求給 url ,其中 data 對象的內容將以查詢參數的形式發送。一旦數據抵達,它將以返回值作為參數執行給定的函數。請注意,我們在這里可以使用我們先前設定的 $SCRIPT_ROOT 變量。

如果您還沒有完全了解這個例子,可以從 github 上下載 本例源碼 。

更多關于jQuery相關內容可查看本站專題:《jquery中Ajax用法總結》、《jQuery擴展技巧總結》、《jQuery常用插件及用法總結》、《jQuery常見經典特效匯總》及《jquery選擇器用法總結

希望本文所述對大家jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
宅男66日本亚洲欧美视频| 一级做a爰片久久毛片美女图片| 欧美日韩一区免费| 久久久久久久亚洲精品| 欧美激情亚洲自拍| 日韩精品视频在线播放| 亚洲精品成人久久久| 国内免费精品永久在线视频| 91人人爽人人爽人人精88v| 久久精品国产亚洲7777| 国内精品久久影院| 久久亚洲精品毛片| 最近2019好看的中文字幕免费| 欧美美最猛性xxxxxx| 少妇高潮 亚洲精品| 亚洲精品91美女久久久久久久| 日韩av观看网址| 国产精品色婷婷视频| 精品国产鲁一鲁一区二区张丽| 日韩av免费观影| 亚洲性生活视频在线观看| 国产精品自产拍高潮在线观看| 欧美精品免费播放| 久久精品中文字幕电影| 欧美高清不卡在线| 亚洲精品综合精品自拍| 欧美精品激情视频| 97视频在线观看网址| 国产国语刺激对白av不卡| 91高清免费视频| 性欧美办公室18xxxxhd| 成人精品视频99在线观看免费| 久久精品久久久久久国产 免费| 国产精品99久久久久久久久久久久| 欧美性受xxxx黑人猛交| 亚洲国产精品久久久久秋霞不卡| 91日韩在线视频| 亚洲天堂av女优| 日韩在线视频观看| 欧美亚洲在线播放| 日韩**中文字幕毛片| 在线观看成人黄色| 亚洲社区在线观看| 日韩精品中文字幕有码专区| 欧美日韩性视频在线| 在线免费观看羞羞视频一区二区| 欧美黄色小视频| 精品亚洲一区二区三区在线播放| 97精品视频在线| 久久久久久国产精品美女| 亚洲欧美一区二区激情| 国产一区二区三区毛片| 亚洲乱亚洲乱妇无码| 日韩成人在线网站| 欧美成人全部免费| 国产精品444| 欧洲美女免费图片一区| 国产亚洲精品美女久久久久| 色妞色视频一区二区三区四区| 日韩美女视频免费在线观看| 精品国产乱码久久久久酒店| 96精品视频在线| www.日韩.com| 亚洲一区二区三区毛片| 国产精品久久91| 亚洲精品视频在线观看视频| 国产精品大陆在线观看| 国产在线观看精品| 亚洲第一精品久久忘忧草社区| 国产美女扒开尿口久久久| 欧美巨乳美女视频| 国产成人aa精品一区在线播放| 国内揄拍国内精品| 成人免费福利视频| 国产综合视频在线观看| 欧美黑人xxx| 91免费看视频.| 欧美激情久久久久久| 欧美二区乱c黑人| 久久久久久久久亚洲| 精品国产一区二区三区久久| 国产一区二区在线播放| 午夜伦理精品一区| 最新亚洲国产精品| 亚洲欧美日韩精品久久亚洲区| 日本精品视频在线观看| 国产婷婷97碰碰久久人人蜜臀| 日韩一区二区av| 国产精品久久99久久| 久久精品国产免费观看| 国产精品∨欧美精品v日韩精品| 91久久夜色精品国产网站| 亚洲福利在线看| 久久亚洲综合国产精品99麻豆精品福利| 日韩av片永久免费网站| 一区三区二区视频| 69av在线播放| 国产日韩欧美夫妻视频在线观看| 国产日韩欧美夫妻视频在线观看| 日韩高清不卡av| 中文字幕在线日韩| 在线观看亚洲视频| 久久久噜噜噜久久久| 久久av.com| 国产精品91在线观看| 欧美丝袜一区二区三区| 91chinesevideo永久地址| 久久久久久久久电影| 中文字幕亚洲无线码在线一区| 在线日韩中文字幕| 在线日韩第一页| 日本亚洲精品在线观看| 91欧美激情另类亚洲| 51视频国产精品一区二区| 欧美在线视频免费观看| 日韩av成人在线| 欧美在线免费视频| 久久国产精品久久国产精品| 日韩精品亚洲元码| 色综合伊人色综合网| 国产精品成人免费电影| 国产一区二区日韩精品欧美精品| 91爱视频在线| 国产精品午夜国产小视频| 成人字幕网zmw| 久久亚洲综合国产精品99麻豆精品福利| 欧美福利在线观看| 人人澡人人澡人人看欧美| 日韩欧美国产视频| 亚洲欧美中文日韩在线v日本| 亚洲爱爱爱爱爱| 国产精品一区二区久久久| 成人免费视频网址| 国产福利精品视频| 亲爱的老师9免费观看全集电视剧| 91九色国产社区在线观看| 国产精品户外野外| 亚洲一区二区少妇| 日本高清久久天堂| 国外成人免费在线播放| 欧美性黄网官网| 日韩欧美999| 欧美另类在线观看| 97精品国产97久久久久久免费| 欧美日韩一区二区在线播放| 欧美在线一区二区三区四| 国产精品精品视频| 精品偷拍各种wc美女嘘嘘| 亚洲美女视频网站| 日韩欧美综合在线视频| 亚洲国产欧美一区| 成人看片人aa| 久久精品亚洲94久久精品| 成人情趣片在线观看免费| 久久国内精品一国内精品| 亚洲精品乱码久久久久久按摩观| 亚洲国产精品va在线看黑人| 视频一区视频二区国产精品| 欧美日韩第一视频| 97人洗澡人人免费公开视频碰碰碰| 欧美激情网站在线观看| 国产精品扒开腿做| 久久成人一区二区| 亚洲黄在线观看|