正在查看: 标记有标签 ajax 的文章(第 1 页 / 共 2 篇)

AJAX Sudoku: 网页版的超炫数独游戏

喜欢玩智力游戏的同学对数独这个游戏一定不陌生,但大多数情况下,大家玩得都是手机版、单机版和Flash版,很少有非Flash网页版的数独游戏。

今天在网上闲逛找项目灵感时,发现了一个基于AJAX的网页版数独游戏AJAX Sudoku

整个游戏基于jQuery+PHP+qqwing制作,不过这个游戏将IE浏览器彻底鄙视了一回:IE浏览器用户使用时将会出现很多问题,所以,要获得最佳游戏体验,最好使用Firefox,Opera,Safari或者Chrome中的一款

网页AJAX版数独游戏截图

游戏方法非常简单:

选定一个方格之后,按照数独游戏规则,通过电脑键盘输入一个数字即可。

游戏网址:http://deepliquid.com/projects/sudoku/

防止AJAX动态结果在前端页面缓存的方法

在利用AJAX从后台程序提取数据,然后在前端页面显示出来的过程中,我们经常会碰到AJAX提取的数据被缓存,导致结果异常的问题。

具体原因是因为AJAX依赖于JavaScript,而浏览器会自动将JavaScript代码和文件数据缓存在客户端,这有利于用户下次访问时页面的快速下载和解析。

要解决数据被缓存,大概有两种做法。

第一种,是在客户端进行,在AJAX发送请求到后台数据处理页面的URL上加一个随机字符串 即可。这样一来,浏览器会认为AJAX发出的HTTP请求每次都不同(URL不同),从而每次都重新请求。具体做法如下:

xmlHttp.open("GET", "ajax.php?r="+new Date().getTime(), true);

既然是随机字符串,还可以使用:+math.random(),只要保持字符串随机即可。

另外一种是在服务器端进行。具体做法是修改HTTP头信息,手动设置让其过期。下面以PHP为例说明:

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
 header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
 header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
 header ("Pragma: no-cache"); // HTTP/1.0

其他语言,比如ASP,J2EE,做法与此非常类似。

通常情况下,我们只需要选其以上两种方法的其中一种即可。

Tags: ajax,缓存