【发布时间】:2012-03-20 10:54:38
【问题描述】:
我是 javascript 和整个前端开发方面的新手。
这是我正在使用的:
- 在 Tomcat7 上运行的 Java servlet
- twitter-bootstrap 用于布局/主题
- Pubnub 跟踪表单提交的次数
- Javascript/jquery 在网页上显示此值。
我添加了 PUBNUB.subscribe 回调,它可以很好地更新网页上的值。但是,当我第一次加载网页时,我不知道应该显示什么值。
为了解决这个问题,我采取了以下措施: 我在 servlet 中添加了一个方法,当在 POST 请求中传入正确的参数时,它将发送一条 pubnub 消息,其中包含要显示的数量,该方法工作正常。
接下来,我尝试使用 jquery 调用 POST 请求,如下所示:
$.post("../servlets/theservlet",
{
update : "true"
});
我尝试将它放在 $(window).load 函数中,但是当我加载网页时,它并没有达到我的预期。 我希望它在加载所有内容后执行 POST,这将导致从 servlet 发布 pubnub 消息,这将激活 PUBNUB.subscribe 函数中的回调方法。但是,该值没有改变,它仍然是在 html 中硬编码的占位符。
目前,我正在调用 setTimeout("updateUses()", 1500);从 $(window).load 函数中。 updateUses() 与我之前展示的 $.post 调用完全相同。
现在,当我加载页面时,占位符值会存在一段时间(似乎超过 1.5 毫秒),然后它会更新为正确的值。如果我删除 setTimeout 并直接调用 updateUses() ,则不会再发生任何事情。
我需要更改哪些内容才能立即加载值(或至少没有明显延迟)?
【问题讨论】:
-
$.post(url, data);如何在没有成功回调的情况下更新DOM? -
此外,为什么不提供已经存在 PUBNUB 统计信息的页面?
-
因为帖子激活了触发 PUBNUB 发布事件的 servlet,该事件被已经在等待消息的 PUBNUB.subscribe 事件捕获。我不确定如何为已经存在计数器值的页面提供服务,因为如果不执行我正在使用 servlet 执行的数据库查询,我无法访问当前值应该是什么。跨度>
标签: javascript jquery publish-subscribe pubnub