首页 > 代码库 > AJAX GET与POST区别及web离线应用的简单理解

AJAX GET与POST区别及web离线应用的简单理解

 1.get方式传参为显示的,在url后面会跟参数,安全性不好,但性能较高    
   post方式传参为隐式,安全性较高。
2.get取或送数据的大小有限制,一般小于1kb   
   post取或送数据的大小无限制,一般为2M
3.get方式取数据要用QueryString    
   post方式取数据要用Request.Form   
   虽然两者有一个统一的Request方法,但这样影响效率,尽量少用。
4.get方法会cache数据   
   post 方式never cache数据 5.Jquery实现ajax:   

   $.ajax({
            url: ‘ServiceHandler.ashx‘,
            data: [{ name: "key", value: "download" }],
            dataType: ‘json‘,
            type: ‘post‘,//或用get方式
            cache: false,
            async: false,
            error: function (e) {
            },
            success: function (data) {
                //存入storage
                $.each(data.Menu, function (i, n) {
                    localStorage.setItem("m" + n.number, JSON.stringify(n));
                });
            }
        });

 

XPOS项目经验记录:

1.应用HTML5&CSS3纯前台技术,实现web本地存储与离线应用功能。
2.现在主流浏览器,如chrome,safri,firefox,IE 11以上均支持本地存储机制localStorage
   window.localStorage.setItem(‘‘,‘‘)
    window.localStorage.setItem(‘‘,‘‘)
3.web离线应用机制:
    a.在发布web的服务器上,添加后缀为.appcache的文件(如xpos.appcache),在文件里添加要缓存的内容
       CACHE MANIFEST
        #要缓存的内容
        Main.html
       JavaScripts/xpos.order.js
        NETWORK
        #不缓存的内容
    b.在iis服务器上,网站首页双击MIME Types图标,然后弹出ADD MIME Types对话框中,在Extension处填入“.appcache”,在MIME处填入“text/cache-manifest”
    c.在网站的首页<html>标签内写入,如<html xmlns="http://www.w3.org/1999/xhtml" manifest="xpos.appcache">
    d.每次网站更新,一定要修改xpos.appcache文件,可以向里面加更新版本,因为缓存文件更新机制是根据xpos.appcache文件的更新来确定网站是否更新的。
    e.缓存的各种监听事件:

     var appCache = window.applicationCache;    

    window.addEventListener(‘online‘, function () {         appCache.update();     });

    appCache.addEventListener(‘cached‘, function () {
    });
    appCache.addEventListener(‘checking‘, function () {
    });
    appCache.addEventListener(‘downloading‘, function () {
    });
    appCache.addEventListener(‘error‘, function () {
    });     appCache.addEventListener(‘noupdate‘, function () {
    });
    appCache.addEventListener(‘updateready‘, function () {       
    if (confirm(‘服务器网站已有更新,是否更新到本地?‘)) {      
       window.location.reload();        
    }        
      appCache.swapCache();        
      dataOperator.downLoadData();     
      dataOperator.showData();    
   });
 
3.在开发过程中,通过ajax与WCF进行数据交互时,常常头一次或头几次数据加载成功。以后均加载失败。查找原因,经验如下:
   a.因为启用的web离线缓存机制,所以每次ajax加载数据时是从本地缓存文件中读取的,用的是ajax的get模式,因为get模式会缓存,所以不会重新向服务器请求数据,导致数据加载失败。
   b.改成ajax post方式后,数据 never cache,所以每次刷新网站,均会向service请求数据。

AJAX GET与POST区别及web离线应用的简单理解