关于jQuery页面刷新(局部、全部)问题
第一:页面局部刷新:
jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是laod()、$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法。
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 });
关于GetJson: demo 详见:http://www.cnblogs.com/jams742003/category/225387.html
第二:页面全部刷新:
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