PC版的web程序两个两个页面之间的传值方式主要有,cookie,查询字符串,还可以通过服务端的session来交换数据.但app的传值方式呢?
由于app基本都是单页面的方式,查询字符串这种方式似乎行不通了,至少目前个人还没有见到这种例子..
主要有1HTML5 LocalStorage 本地存储,2隐藏字段,3扩展属性,4服务器端的session等
1HTML5 LocalStorage 本地存储
这种传值方式类似于cookie传值方式,是HTML5的新标准。在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,
前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。
2隐藏字段
在PC版的web程序中经常使用隐藏字段来存储一些特定的信息,在app中也可以使用,当然有一定限制,在单页面的app中可以传值,因为是单页面,最终会在内存中变成同一个dom,所以可以在一个panel中,设定隐藏字段,在另一个panel中读取隐藏字段。
例如:
<div id="jiekuanshenpi" class="panel" data-load="loadFirstpage" data-defer="jiekuanshenpi.html" data-tab="navbar_picture"> </div> <div id="jiekuanshenpiDetail" class="panel" data-load="loadjiekuanshenpiDetail" data-defer="jiekuanshenpiDetail.html" jiekuanshenpiDetailId="" data-tab="navbar_picture"> </div>在jiekuanshenpi.html页面中设定隐藏字段的值,在jiekuanshenpiDetail.html中读取隐藏字段的值。
3扩展属性
使用的限制和原因与隐藏字段是一样的。
例如:
如上的代码,多加了一个扩展属性jiekuanshenpiDetailId
在jiekuanshenpi.html页面中设定扩展属性jiekuanshenpiDetailId的值,
$("#jiekuanshenpiDetail").attr("jiekuanshenpiDetailId",id);
在jiekuanshenpiDetail.html中读取jiekuanshenpiDetailId的值。
var jiekuanshenpiDetailId2 = $("#jiekuanshenpiDetail").attr("jiekuanshenpiDetailId");4服务器端session等
这个和PC端的文本基本没有差别,服务端的传值方式基本都可以使用。