长连接模式在safari/IE上响应不及时

1 view
Skip to first unread message

lijie

unread,
Mar 30, 2009, 3:11:20 AM3/30/09
to eurasi...@googlegroups.com
使用“2.4.1 httpfile
长连接响应模式”的例子做测试,分别在IE/safari(mac)/firefox(mac)中打开页面,在IE里面打开第4个页面,发现firefox中立刻有信息显示“我加入啦”,safari/IE中都没有显示。多次刷新(十几次)第4个页面后,safari/IE中都有信息。这是不是浏览器的接收buffer造成的?有什么办法避免?

沈崴

unread,
Mar 30, 2009, 3:34:24 AM3/30/09
to eurasia-users
On Mar 30, 3:11 pm, lijie <cpun...@gmail.com> wrote:
> 使用"2.4.1 httpfile
> 长连接响应模式"的例子做测试,分别在IE/safari(mac)/firefox(mac)中打开页面,在IE里面打开第4个页面,发现firefox中立刻有信息显示"我加入啦",safari/IE中都没有显示。多次刷新(十几次)第4个页面后,safari/IE中都有信息。这是不是浏览器的接收buffer造成的?有什么办法避免?

这是接收缓存造成的, 只要先发送超过缓存的数据 (比如发送一个页面)
即可看到即时效果。

这一节主要是演示目的。一般我们主要使用的是 JavaScript RPC 功能,
JS RPC 简单并且没有缓存问题, 这在文档下一节讲到。

长连接状态下禁止浏览器一直处于下载状态, 可以参考列表前面的讨论:
http://groups.google.com/group/eurasia-users/browse_thread/thread/d7ddfe984929f1f6

张沈鹏

unread,
Mar 30, 2009, 3:41:21 AM3/30/09
to eurasi...@googlegroups.com
2009/3/30 沈崴 <wile...@gmail.com>:

> On Mar 30, 3:11 pm, lijie <cpun...@gmail.com> wrote:
>> 使用"2.4.1 httpfile
>> 长连接响应模式"的例子做测试,分别在IE/safari(mac)/firefox(mac)中打开页面,在IE里面打开第4个页面,发现firefox中立刻有信息显示"我加入啦",safari/IE中都没有显示。多次刷新(十几次)第4个页面后,safari/IE中都有信息。这是不是浏览器的接收buffer造成的?有什么办法避免?
>
> 这是接收缓存造成的, 只要先发送超过缓存的数据 (比如发送一个页面)
> 即可看到即时效果。

那这个"超过缓存"大小是多大呢 有一个经验值吗?

>
> 这一节主要是演示目的。一般我们主要使用的是  JavaScript RPC 功能,
> JS RPC 简单并且没有缓存问题, 这在文档下一节讲到。
>
> 长连接状态下禁止浏览器一直处于下载状态, 可以参考列表前面的讨论:
>    http://groups.google.com/group/eurasia-users/browse_thread/thread/d7ddfe984929f1f6
> >
>

--
张沈鹏
http://zsp.javaeye.com/
Mobile: 13693622296

沈崴

unread,
Mar 30, 2009, 3:49:37 AM3/30/09
to eurasia-users
On Mar 30, 3:41 pm, 张沈鹏 <zsp...@gmail.com> wrote:
> 2009/3/30 沈崴 <wilei...@gmail.com>:

>
> > On Mar 30, 3:11 pm, lijie <cpun...@gmail.com> wrote:
> >> 使用"2.4.1 httpfile
> >> 长连接响应模式"的例子做测试,分别在IE/safari(mac)/firefox(mac)中打开页面,在IE里面打开第4个页面,发现firefox中立刻有信息显示"我加入啦",safari/IE中都没有显示。多次刷新(十几次)第4个页面后,safari/IE中都有信息。这是不是浏览器的接收buffer造成的?有什么办法避免?
>
> > 这是接收缓存造成的, 只要先发送超过缓存的数据 (比如发送一个页面)
> > 即可看到即时效果。
>
> 那这个"超过缓存"大小是多大呢 有一个经验值吗?

以前测试时, 好像是 1K 左右。也可以输出一段 JavaScript Hack (调 escape) 来刷出来 (未测试)。
可以编一段代码来试出来。

from time import sleep
def test_buff(httpfile):
httpfile.wbegin('.'*1024) # 先输出 1K
for i in xrange(10240):
print i
httpfile.write('.')
sleep(1)

手上有 IE 和 Safari 的同学可以试一下 :)

> > 这一节主要是演示目的。一般我们主要使用的是 JavaScript RPC 功能,
> > JS RPC 简单并且没有缓存问题, 这在文档下一节讲到。
>
> > 长连接状态下禁止浏览器一直处于下载状态, 可以参考列表前面的讨论:

> > http://groups.google.com/group/eurasia-users/browse_thread/thread/d7d...
>
> --
> 张沈鹏http://zsp.javaeye.com/
> Mobile: 13693622296

Reply all
Reply to author
Forward
0 new messages