【问题标题】:Refreshing page without losing textbox value刷新页面而不丢失文本框值
【发布时间】: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

标签: html forms textbox


【解决方案1】:

看看http://www.w3schools.com/JS/js_cookies.asp,它向您展示了如何在 JS 中设置和获取 cookie。您可以在页面加载时从 cookie 设置文本框值,并在文本框内容更改时设置 cookie 值。我不得不承认这似乎是一种奇怪而尴尬的方式,但我还没有看到完整的东西......

我可能可以为此提供示例代码,但我已经有几个月没有做过任何 JS 并且目前处于 VB.Net 模式。如果其他人可以提供一个基本示例,我将不胜感激。

【讨论】:

    【解决方案2】:

    只需使用 javascript 并使用 AJAX 更新您需要的所有内容。

    【讨论】:

    • 用 AJAX 更新聊天没问题,唯一的问题是文本字段/文本框的值丢失了(用户在刷新之前输入的内容)我希望你能给我 javascript 而不仅仅是告诉我它存在吗? ://
    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2016-01-26
    • 2019-04-05
    • 2013-06-11
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多