在游戏中,玩家的信息会实时变动,我们需要把改变后的信息在页面中体现出来。
需求:航海游戏中,玩家出航,从港口A到港口B,目前他处于的A港口位于地中海,港口B处于太平洋,在未到B港口时,他所处的海域发生了变化,在太平洋海域。 需要在页面中实时展现玩家所处于的海域。
为了满足以上需求,需要做到2点:
1,在数据库层面上,出航的时候,更新玩家所处于的海域
2,在展现层面上,需要把玩家改变的信息显示在页面上。
问题:
QA: 玩家信息如何实时更新
ans: 玩家在航海的过程中,他的相关的数据会被修改。
QB 页面如何知道玩家的信息
ans: 页面中实现一个AJAX函数,这个函数每5秒中请求服务器,并获取玩家最新的相关数据, 如果有多个页面都涉及到实时展现玩家最新信息,建议把这个AJAX函数写在一个公共页面中,如footer,并每次都自动执行。这样,避免了在很多页面中,都写这个AJAX函数
QC: 最新的玩家信息如何被展现到页面中
ans: 页面需要重新渲染数据,一般都是刷新页面,重新给页面分配,还有一种做法就是使用JS函数,操作页面的dome结构。我们已经获取到了玩家的信息,如何把这个信息展现到页面中呢,我们使用JS函数,获取的信息作为他的参数,把获取到的信息,重新分配到页面。
这里就要求:服务器除了把玩家的信息返回给我之外,还有注册一个JS函数,并通知页面执行一个特定的JS函数!!!!!!!!!!!! 如果要执行这个JS函数,需要调用这个函数,如果在页面刷新的前提下 我们使用:
$(function () {
specaiJsFunction(data)
})
这样可以保证specailJsFunction()这个函数可以被自动执行。但是,我们的请求是AJAX,页面不会刷新,所以,这样的做法行不通。我们可以在ajax请求的回调函数里面执行这个函数,所以要求这个函数必须是AJAX函数的返回值,否则程序不知道调用那个函数!