第一:頁面局部刷新:
jQuery對Ajax操作進行了封裝,在jQuery中$.ajax()方法屬於最底層的方法,第2層是laod()、$.get()和$.post()方法,第3層是$.getScript()和$.getJSON()方法。
$.ajax()Code
load()方法通常用來從Web服務器上獲取靜態的數據文件.要傳遞一些參數給服務器中的頁面,那么可以使用$.get()或者$.post()方法$.ajax方法
load() Code
1 //無參數傳遞,則是GET方式 2 $("#resText").load("test.php",function(){ 3 //...... 4 }); 5 6 //有參數傳遞,則是POST方式 7 $("#resText").load("test.php",{name:"xht555",age:"24"},function(){ 8 //...... 9 });
簡單說一下 post 與get 區別:
get:用get方式可傳送簡單數據(即:瀏覽器將各個表單字段元素及其數據按照URL參數的格式附加在url后面),但大小一般限制在1KB下;被客戶端的瀏覽器緩存起來,不安全。
post:覽器把各表單字段元素及其數據作為HTTP消息的實體內容發送給Web服務器,而不是作為URL地址的參數進行傳遞,
總結:
一:GET方式傳送數據量小,處理效率高,安全性低,會被緩存,而POST反之。
二:AJAX亂碼問題
產生亂碼的原因:
1、xtmlhttp 返回的數據默認的字符編碼是utf-8,如果客戶端頁面是gb2312或者其它編碼數據就會產生亂碼
2、post方法提交數據默認的字符編碼是utf-8,如果服務器端是gb2312或其他編碼數據就會產生亂碼
解決辦法有:
1、若客戶端是gb2312編碼,則在服務器指定輸出流編碼
2、服務器端和客戶端都使用utf-8編碼
gb2312:header('Content-Type:text/html;charset=GB2312');
utf8:header('Content-Type:text/html;charset=utf-8');
注 意:如果你已經按上面的方法做了,還是返回亂碼的話,檢查你的方式是否為get,對於get請求(或凡涉及到url傳遞參數的),被傳遞的參數都要先經 encodeURIComponent方法處理.如果沒有用encodeURIComponent處理的話,也會產生亂碼
$.post() Code
1 //$.post()方式: 2 $('#test_post').click(function (){ 3 $.post( 4 'ajax_json.php', 5 { 6 username:$('#input1').val(), 7 age:$('#input2').val(), 8 sex:$('#input3').val(), 9 job:$('#input4').val() 10 }, 11 function (data) //回傳函數 12 { 13 var myjson=''; 14 eval('myjson=' + data + ';'); 15 $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']); 16 } 17 ); 18 });
$.get() Code
1 //$.get()方式: 2 $('#test_get').click(function () 3 { 4 $.get( 5 'ajax_json.php', 6 { 7 username:$("#input1").val(), 8 age:$("#input2").val(), 9 sex:$("#input3").val(), 10 job:$("#input4").val() 11 }, 12 function(data) //回傳函數 13 { 14 var myjson=''; 15 eval("myjson=" + data + ";"); 16 $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']); 17 } 18 ); 19 }); 20 21 22 });
$.getJson()Code
1 $.getJson(”Default.php”, {id:”1″, page: “2″ }, 2 function(data){ 3 //注意,這里返回的JSON數據格式,不同於xml. 4 });
關於GetJson: demo 詳見:http://www.cnblogs.com/jams742003/category/225387.html
第二:頁面全部刷新:
Demo Code
1 window.location.reload()刷新當前頁面. 2 parent.location.reload()刷新父親對象(用於框架) 3 opener.location.reload()刷新父窗口對象(用於單開窗口) 4 top.location.reload()刷新最頂端對象(用於多開窗口)
參考資料:
tks:
http://friendship517.blog.163.com/blog/static/5705127820091131113932372/
http://dhjdhja.blog.163.com/blog/static/64721136201277101839334/
http://hi.baidu.com/wangjijun/item/6d881ad6568e34cb1b72b453
