Sae*_*ati 6 javascript ajax comet http lightstreamer
我将为彗星编程开发一个框架,我不能使用Web套接字或服务器发送事件(因为浏览器支持真的很糟糕).因此,我需要保持HTTP连接的活动状态,并将分块数据发送回客户端.
但是,当您进入工作时,问题就出现了:
xhr.responseText
,同时xhr.readyState
为3.iframe
无用,因为浏览器在我将数据发送回客户端时显示加载器.但是,当我查看Lightstreamer演示页面时,我看到它一点一点地将JavaScript文件发送回客户端,并且在每一步中,它都会调用该函数并且该函数只是被执行(我不能这样做)部分).似乎Lightstreamer使用AJAX,因为请求只是出现在Firebug的控制台选项卡中,但它也像IE中的魅力一样.
我试图使用他们在请求中设置的每个HTTP头字段,但没有结果.我也尝试使用HTTP Post而不是HTTP Get,但仍然没有结果.
我已经阅读了近20篇关于如何实施彗星的文章,但是没有一篇文章可以解决我遇到的问题:
有人可以帮忙吗?我认为应该有一个非常小的提示或技巧,我不知道在这里将所有概念粘合在一起.有谁知道lightstreamer会做些什么来克服这些问题?
SockJS的作者在这里.
- 如何使其跨浏览器?
这很难,预计会花几个月时间在Opera和IE上获取流媒体传输.
- 如何在从服务器到达新数据时收到通知(我应该挂钩什么事件)?
根据特定的浏览器,有各种技术.有关一个好的介绍,请查看Socket.IO和SockJS支持的不同后备协议.
- 如何使我的页面显示为完全加载到用户(如何实现它,以便浏览器不显示加载活动)?
同样,还有特定于浏览器的技巧.一种是在onload事件后延迟加载AJAX.另一种是从DOM绑定和取消绑定iframe.等等.如果您仍然感兴趣,请阅读SockJS或Socket.io代码.
有人可以帮忙吗?我认为应该有一个非常小的提示或技巧,我不知道在这里将所有概念粘合在一起.有谁知道lightstreamer会做些什么来克服这些问题?
基本上,除非你有很强的理由,否则不要重新发明轮子.使用SockJS,Socket.io,faye或其他几十个已解决此问题的项目.
但浏览器在 JavaScript 完全加载之前不会执行它。
您是否尝试过发送回包裹在<script>
标签中的代码?例如,代替:
<script type="text/javascript">
f(...data1...);
f(...data2...);
Run Code Online (Sandbox Code Playgroud)
尝试
<script type="text/javascript">f(...data1...);</script>
<script type="text/javascript">f(...data2...);</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3836 次 |
最近记录: |