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