關于jQuery頁面重新整理(局部、全部)問題
第一:頁面局部重新整理:
jQuery對Ajax操作進行了封裝,在jQuery中$.ajax()方法屬于最底層的方法,第2層是laod()、$.get()和$.post()方法,第3層是$.getScript()和$.getJSON()方法。
$.ajax()Code
load()方法通常用來從Web伺服器上擷取靜态的資料檔案.要傳遞一些參數給伺服器中的頁面,那麼可以使用$.get()或者$.post()方法$.ajax方法
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處理的話,也會産生亂碼
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 });
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 });
1 $.getJson(”Default.php”, {id:”1″, page: “2″ },
2 function(data){
3 //注意,這裡傳回的JSON資料格式,不同于xml.
4 });
1 window.location.reload()重新整理目前頁面.
2 parent.location.reload()重新整理父親對象(用于架構)
3 opener.location.reload()重新整理父視窗對象(用于單開視窗)
4 top.location.reload()重新整理最頂端對象(用于多開視窗)