本文實例分兩部分對jquery刷新問題進行介紹,第一部分介紹了呢頁面局部刷新;第二部分介紹了頁面全部刷新
第一:頁局部刷新
jQuery對Ajax操作進行了封裝,在jQuery中$.ajax()方法屬於最底層的方法,第2層是laod()、$.get()和$.post()方法,第3層是$.getScript()和$.getJSON()方法。
重點分析load()方法通常用來從Web伺服器上取得靜態的資料檔.要傳遞一些參數給伺服器中的頁面,那麼可以使用$.get()或$.post()方法$.ajax方法
load() Code //无参数传递,则是GET方式 $("#resText").load("test.php",function(){ //...... }); //有参数传递,则是POST方式 $("#resText").load("test.php",{name:"xht555",age:"24"},function(){ //...... });
簡單說一下 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 //$.post()方式: $('#test_post').click(function (){ $.post( 'ajax_json.php', { username:$('#input1').val(), age:$('#input2').val(), sex:$('#input3').val(), job:$('#input4').val() }, function (data) //回传函数 { var myjson=''; eval('myjson=' + data + ';'); $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']); } ); }); $.get() Code //$.get()方式: $('#test_get').click(function () { $.get( 'ajax_json.php', { username:$("#input1").val(), age:$("#input2").val(), sex:$("#input3").val(), job:$("#input4").val() }, function(data) //回传函数 { var myjson=''; eval("myjson=" + data + ";"); $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']); } ); }); }); $.getJson(”Default.php”, {id:”1″, page: “2″ }, function(data){ //注意,这里返回的JSON数据格式,不同于xml. });
第二:頁面全部刷新
以上就是本文的詳細內容,希望對大家的學習有所幫助。