傳統的方法是當我們處理一個表單時,我們Post數據給服務器,服務器對數據進行處理后將數據返回給用戶,此時部分寫法是用頁面刷新的方式將頁面重新刷新一次呈現給用戶,這樣的話用戶相當於讀入了兩次頁面,人一多的話對服務器壓力比較大。如果采用ajax的方式,我們只需要對頁面局部進行刷新而不需要刷新整個頁面,這樣可以大量節省服務器資源。而一個結合json response的例子如下:
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。
語言轉化表 前者轉化為后者時的類型變化
首先在django中定義json函數:
import json
def json_response(flag=False, msg='', content=''):
return HttpResponse(json.dumps({'flag': flag, 'msg': msg, 'data': content}))
在views函數中的使用
return json_response(True, '提交錯誤')
在html頁面中將其應用在ajax中
function check() {
$("#Qsubmit").click(function(e){
e.preventDefault(); //阻止提交數據
$.ajax({
type:"POST", //提交類型
url: "{% url 'message:expert_mentor' %}", //處理的函數
data: $("form").serialize(), //將表單中的值按照dict序列化
dataType: "json", //數據類型
success: function(response){ //成功后的響應函數
if(response['flag'] == true){
$("#question2").val(""); //對局部填寫的數據進行清空
alert("感謝你的提問,我們會盡快安排專家對您的問題進行回答,謝謝!");
}else{
alert(response['msg']);
}
}
})
})
}