我正在构建一个由全窗口画布组成的HTML5游戏。我想偶尔在画布上显示一个面板,用于显示设置等。
实现这一点的一种方法是有一个默认隐藏的<div id="panel">
,它绝对位于画布的顶部。当用户想要显示面板时,我可以简单地使用jQuery来显示面板。
我还希望服务器能够打开这个面板,也许可以使用片段标识符。
请有人解释一下展示和隐藏面板的最佳方式。
考虑到你想要实现的目标,我会选择其中一种方法:
AJAX
- 创建一个JavaScript对象,用于处理面板中的所有内容
- 创建一个可以根据用户的操作显示/隐藏面板的句柄(例如
onclick
) - 设置检查服务器上的某些内容是否已更改的间隔
- 如果
true
使用此调用的响应(可能是JSON对象)来更新显示面板
- 如果
HTML5 WebSockets
另一种可能性是使用HTML5 WebSockets。使用WebSocket,您可以在服务器和浏览器之间建立全双工连接:
WebSocket是一种通过单个TCP连接提供全双工通信信道的web技术。[…]WebSocket设计用于在web浏览器和web服务器中实现,但它可以由任何客户端或服务器应用程序使用。WebSocket协议是一个独立的基于TCP的协议。它与HTTP的唯一关系是,它的握手被HTTP服务器解释为升级请求。[1] WebSocket协议使浏览器和网站之间的更多交互成为可能,促进了实时内容和实时游戏的创建。[…]
来自Wikipedia.org"WebSocket"
你可以在这篇文章中找到很多好的例子和信息:
什么是学习HTML5WebSocket的好资源?