【发布时间】:2011-05-14 15:07:34
【问题描述】:
我有一个网页游戏,它是多人游戏,所以页面必须每隔几秒刷新一次,这样玩家就可以跟踪并知道什么时候轮到他们...
使用代码刷新:
<META HTTP-EQUIV="Refresh" CONTENT="3; URL=game.php">
游戏页面中还有一个“聊天室”,基本上允许玩家互相“聊天”,聊天室由一个 div(保存数据库中的文本)和一个 HTML 表单文本框/文本字段和一个HTML 表单提交按钮。
但是因为如果用户正在输入诸如“Hello player”之类的内容并在页面自动刷新之前到达“Hel”,则页面会刷新,因此文本字段/文本框会丢失值(“Hel”)
我怎样才能轻松地将“Hel”值放回文本框/文本字段,就好像它从未消失一样,以便用户可以继续输入他的消息?
或者有没有办法永远不会失去价值?
【问题讨论】:
-
可以选择 Ajax 吗?如果是这样,根本不要刷新页面,只需向服务器发出 Ajax 请求以检索任何新数据。如果你想全力以赴;查看 Comet en.wikipedia.org/wiki/Comet_(programming) 将更新推送到客户端。
-
我已经使用 AJAX 来获取聊天信息,在整个游戏中使用它会很烦人且没有必要。我只需要文本框在刷新时保持其值。
-
只要刷新页面,就无法提供无缝的用户体验。页面刷新时用户可能仍在键入,并且不会捕获所有用户输入。至于替代选项...将值存储在文本框属性更改的cookie中并在页面加载时恢复值; hackish 但你可能会得到最好的:w3schools.com/JS/js_cookies.asp