在使用javascript加载页面的动态部分时,有人能指出一些关于如何最好地进行缓存的示例代码吗?
我的规范示例涉及一个页面,除了用户在页面顶部的登录状态和用户名之外,其他任何内容都不会发生变化。通过jQuery和ajax请求更改此文本很容易,但由于我在$(document).ready()
上执行此操作,如果您快速查看,您可以在ajax之前看到页面加载类似“Click Here to Login”的内容请求触发并更新页面的该部分。
编辑以澄清:
如果我缓存整个页面,会发生以下情况。
理想情况下,在第2步,页面将在没有“Hi User A”位的情况下进行缓存,这样当有人请求页面时,我会发出一个简单的ajax请求来获取问候语,然后将其推送到dom中。 / p>
我假设javascript是要走的路,但我认为必须有一种比等待$(document).ready()
更好的方式,以便页面更自然地呈现。
如果重要(虽然我认为不应该,因为适用于静态html的解决方案也适用于我正在做的事情),我使用的是rails 2.3.x和jQuery。
答案 0 :(得分:1)
我最初会在服务器的主页面中加载用户状态,使用生成AJAX响应的相同内容。然后,当用户更改状态时,使用AJAX客户端更新它。
这样,初始页面具有正确的状态,但在用户执行操作时仍可以更改。
假设方法getStatus()
为用户所处的任何状态生成正确的HTML。在页面上,我将有<div>
包含此信息。服务器端,调用getStatus()
(出于示例目的使用PHP):
<div id="status"><?php =getStatus() ?></div>
然后让您的AJAX请求返回getStatus()
并更新<div id="status">
内容。
答案 1 :(得分:0)
啊哈!有一个railscast完全符合我的要求!
Rails-y goodness可以在这里找到:http://railscasts.com/episodes/169-dynamic-page-caching