?
$rd_nocache = random(6);
' 新的页面地址,使页面缓存无效
<a href=\"index.php?action=pm&do=send&$rd_nocache\">$lang[pm_send]</a><br />\n"
' 新的表单名称,使表单缓存无效
echo "<p>$lang[pm_to]:<input type=\"text\" name=\"msgto$rd_nocache\" value=\"$pm[msgfrom]\" maxlength=\"20\" format=\"\" /><br />\n".
"<anchor title=\"$lang[submit]\">$lang[submit]".
"<go method=\"post\" href=\"index.php?action=pm&do=send&sid=$sid\">\n".
"<postfield name=\"msgto\" value=\"$(msgto$rd_nocache)\" />\n".
"</go></anchor>\n";
?
?
?
?
?
由于手机浏览器缓存的问题,我们会发现在WAP中修改记录点进去时候仍然是上一条记录信息,也就是缓存信息,比方说修改新闻,修改个人资料等。本人在网上找了很多资料,如有网友提出 加一个禁止缓存代码,如下
<meta http-equiv="Cache-Control" content="no-cache"/><!-- 禁止浏览器从缓存中访问页面内容 -->
<meta http-equiv="Expires"?? content="0"/>?
<meta http-equiv="Pragma"?? content="no-cache"/>?
但是在实际测试过程中,仍然没用。
经过一番思考,想到了一个解决方法,就是将每次修改记录的表单里面的文本框等名字变不同,即可。那样也无所谓缓存了,通过这个思路,下面以JSP为例子给大家提供一个简单说明:
我们在页面上生成一个随机数:String ID= (int)(Math.random()*100+100)+"";
设置ID=request.QueryString("ID")
文本框的名称name设置为:name="title<%=ID%>"
提交处:<postfield name="title" value="$title<%=ID%>"/>
这样每次修改进去,由于表单名称都不同,因此就会读取最新记录,而不是缓存信息!
代码如下:
- <%@?page?language="java"?contentType="text/vnd.wap.wml;?charset=GB2312"??
- ????????import="java.util.HashMap"??
- ????????import="com.kingtop.pfb.*"??
- %>??
- %><?xml?version="1.0"?>??
- <!DOCTYPE?wml?PUBLIC?"-//WAPFORUM//DTD?WML?1.1//EN"?"http://www.wapforum.org/DTD/wml_1.1.xml">??
- <wml>??
- <head>??
- ??<meta?http-equiv="Cache-Control"?content="max-age=0"?forua="true"/>??
- ??<meta?http-equiv="Cache-Control"?content="no-cache"/>??
- </head>??
- <card?id="Home"?title="加入电子优惠券">??
- <%??
- String?aa?=?(int)(Math.random()*100+100)+"";??
- String?s___??=?String.valueOf(System.currentTimeMillis());??
- String?m?=?request.getParameter("m");??
- String?code?=?request.getParameter("code");??
- EwmWapClient?ewc?=?new?EwmWapClient();??
- Object[]?data?=?null;??
- if?(?!"".equals(m))??
- {???
- ????data?=?ewc.yhq_add_kc(m,code);??
- ????int?ret?=?Integer.parseInt((String)data[0]);??
- ????String?msg?=?(String)data[1];??
- ????if?(?ret?==?0?)??{??
- ????????out.println("<a?href=\"youhuiquan.jsp?m="+m+"&s___="+s___+"\">增加成功,进入列表</a>");???
- ????}else{??
- ????????out.println(msg);??
- ????}??
- }??
- out.println("m="+m);??
- out.println("code="+code);??
- out.print("aa="+aa);??
- %>??
- <p?align="left">??
- <fieldset?title="加入电子优惠券">??
- 手机号:<input?type="text"?name="m<%=aa?%>"?size="12"?format="*n"?maxlength="11"/><br/>??
- 数字码:<input?type="text"?name="code<%=aa?%>"?size="13"?format="*n"?maxlength="12"/>??
- </fieldset>??
- <anchor?title="手机号">??
- <go?method="post"?href="<%=request.getRequestURI()%>?s___=<%=s___%>">??
- <postfield?name="m"?value="$(m<%=aa?%>)"/>??
- <postfield?name="code"?value="$(code<%=aa?%>)"/>??
- </go>提交??
- </anchor>??
- ??
- <br/><br/><a?href="index.jsp?s___=<%=s___%>">返回</a>??
- </p>??
- </card>??
- </wml> ?
如何去除WAP页面输入框缓存?
在WAP页面输入框的缓存是让用户感到很头疼的东西,很多时候我们第二次访问同一个输入框是想重新输入值的,结果页面响应给我们的框里却遗留了上一次输入的值。还需要手动的删除上一次数据再重新输入数据。从这个操作上来说让用户体验很不流畅,或者说给用户使用带来了阻力。
? ? ? ? 为了规避这种输入框缓存,我们可以利用随机数,如参数param我们可以写成 param + random