当前位置:编程学习 > JAVA >>

如何跨浏览器通信?高手指点

要实现一个类似百度音乐盒的功能,百度的做的挺不错。
描述:A页面中点击“添加”音乐功能,弹出一个页面B,在新弹出页面B中显示刚才添加的音乐。如果我通过其他浏览器打开一个和页面A地址相同的网页,也点击“添加”,它则不会弹出另外一个新窗口,而是在原来的B页面成功添加,很神奇,请问各位高手有无知道他这个是怎么回事?小弟也想实现类似功能,大侠赐教了,感激涕零! --------------------编程问答-------------------- 跨浏览器,就不可能是通过COOKIE,而且它也允许不用登录就可以使用.

所以应该是因为页面A地址里含有一个唯一标识串.通过它就起到了辨别你这个用户的作用.

后台通过这个标识串建立一个SESSION变量存储歌曲列表.前台播放页定时AJAX取刷新的列表返回客户端在页面内进行局部刷新.

这样即使你通过不同的浏览器访问同样的A地址,由于地址里的标记,它就把你对上号了,添加的歌曲也是添加到同样的SESSION里,这样在另外浏览器的页面里再局部刷新时就取到了新添加的歌曲.

如果它们愿意保存到XML中,还可以在以后随时通过保存的收藏地址访问之前的歌曲列表,但一般他们不可能保存下这些以后未必再被使用的数据.所以两个浏览器都关闭之后也就没了.

至于那个重要的标识符,应该是在你打开浏览器并访问歌曲选择页面时,随机生成写在返回的页面里的,然后添加歌曲时把它作为参数一并传递的. --------------------编程问答-------------------- 上面好像正好说反了. 
SESSION的话,有很多限制的,和COOKIE也有关联,不容易跨浏览器.
反而是XML很适合做这件事.标识串就可以作为XML的文件名进行读写. --------------------编程问答-------------------- 百度那个页面我没看,我只是先说一下我最简单能想到的方式.
你可以从网页HTML代码里看看它传参和AJAX的内容,应该能看出一些端倪.起码能排除一些情况. --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- A窗口弹出B窗口,那么B窗口对A窗口来说是已知的和有权管理的。
所以当A窗口再进行类似操作时可以调用B窗口来操作,open方法指定窗口名称时如果名称不存在则新弹出窗口,如果不存在则弹出一个名为B的新窗口。
以上是在客户端进行的脚本操作,服务器端用session,ls已经说明了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,