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请求数据。

时间: 2024-10-15 20:32:34

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

从Docker在Linux和Windows下的区别简单理解Docker的层次结构

上篇文章我们成功在Windows下安装了Docker,输出了一个简单的Hello World程序.本文中我们将利用Docker已有的云端镜像training/webapp来发布一个简单Python的Web程序,在浏览器中输出hello world. 本文内容的测试环境是Windows7下的Docker,用例基于官方文档用例.   一:从运行一个简单的Python Web程序说起 启动Docker客户端并登陆.在客户端中输入以下内容: $ sudo docker run -d -P trainin

localForage——轻松实现 Web 离线存储

localStorage 能够让你实现基本的数据存储,但它的速度慢,而且不能处理二进制数据.IndexedDB 和 WebSQL 是异步的,速度快,支持大数据集,但他们的API 使用起来有点复杂.不仅如此,IndexedDB 和 WebSQL 没有被所有的主流的浏览器厂商支持,这种情况最近也不太可能改变. Mozilla 开发了一个叫 localForage 的库 ,使得离线数据存储在任何浏览器都是一项容易的任务. localForage 是一个使用非常简单的 JavaScript 库的,提供了

反向Ajax,第3部分:Web服务器和Socket.IO

英文原文:Reverse Ajax, Part 3: Web servers and Socket.IO 前言 时至今日,用户期待的是可通过web访问快速.动态的应用.这一文章系列展示了如何使用反向Ajax(Reverse Ajax)技术来开发事件驱动的web应用.系列的第1部分介绍了反向Ajax.轮询(polling).流(streaming).Comet和长轮询(long polling).你已经了解了Comet是如何使用HTTP长轮询的,这是可靠地实现反向Ajax的最好方式,因为现有的所有

ajax同步与异步的区别

jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除.而异步则这个AJAX代码运行中的时候其他代码一样可以运行. ajax中async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据. 一.async值为true (异步) 当

json和jsonp的区别,ajax和jsonp的区别

json和jsonp虽然只有一个字母的区别,但是它们之间扯不上关系. json是一种轻量级的数据交换格式. jsonp是一种跨域数据交互协议. json的优点:(1)基于纯文本传递极其简单,(2)轻量级数据格式适合互联网传递,(3)容易编写和解析. ajax和jsonp的区别: 相同点:都是请求一个url 不同点:ajax的核心是通过xmlHttpRequest获取内容 jsonp的核心则是动态添加<script>标签来调用服务器 提供的js脚本. --- <来源于网络>

web离线应用 Web SQL Database

web sql database 是html5废弃的一个新特性,它提供了基本的关系数据库功能,使用 `SQL` 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite 主要核心api有3个 openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象 Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned

Apache和Tomcat的区别及Web服务器,容器和应用服务器区别问题

清理书签的时候发现了遗留的Apache和Tomcat的区别的问题.打算把刚开始学习Servlet的时候的问题一同解决了,刚开始学习J2EE的时候,先学习的是Servlet,运行需要Tomcat,当时我很郁闷这是什么东西,什么Web容器,真不懂,后面请教了朋友,朋友说暂时把它当成一个服务器理解就好了. 接下来问题有: 1.什么是服务器? 2.Web服务器,Web容器和应用服务器的区别? 3.Apache和Tomcat的区别? 4.都是服务器,那么我们经常还听到Nginx这样的服务器,和Apache

基于html5 localStorage , web SQL, websocket的简单聊天程序

new function() { var ws = null; var connected = false; var serverUrl; var connectionStatus; var sendMessage; var connectButton; var disconnectButton; var sendButton; var open = function() { var url = serverUrl.val(); ws = new WebSocket(url); ws.onope

[angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架

MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage 布局页的引用 <script src="~/Scripts/jquery-1.10.2.min.js"></script> <script src="~/Scripts/bootstrap.min.js"></script&g