最近在做一个类似人人网底部工具栏聊天的功能,现在遇到了一个问题希望各位指教一下,不知道各位发现没有,在不同的页面间进行切换,底部工具栏内容是不会刷新的,比如在一个页面开了一个和别人的聊天窗口,访问下一个页面的时候这个聊天窗口还在,如果是重新加载了这个工具栏的话聊天页面是不会存在的,还有当你关闭页面下次再登录进来的时候,那个聊天窗口还在,对于这个功能怎么做有以下不懂之处:
1、所有的页面都出现这个聊天工具栏是怎么实现了,大致想了一下有两种方式一是包含进去,二是通过js动态写进去,看了一下人人网页源代码,源代码中没有工具栏代码,用ff debug看才能看到,所以觉得人人应该是动态写进去的。
2、接着上面的疑问,如果是包含进去或者是写进去的,那么每个页面都包含了这个页面或者每个页面都加载了写入工具栏dom的js,但是这样做每次进去页面都会重新执行,那么前一个页面打开的聊天窗口是不可能存在的,人人是怎么做的?
3、关闭页面,下次再进去,先前打开的聊天窗口还在,这是怎么做的,放到cookie?不可能,那些内容可是整个dom呀,那它是怎么做的?
   对于上面的几个问题希望各位能指导一下,我qq是874904507 

解决方案 »

  1.   

    这个很容易啊。他只需要继续对方的id,记在cookie里面。
    没吃刷新页面的时候,在重新打开聊天窗口好了,何必要吧整个dom放在cookie里面呢?如果真是楼主这种思路,那么就放在localStoraage里面好了。5M的容量呢。至于为啥所有的页面都有这个聊天窗口。楼主可以想象下,为啥每个页面都有头部?怎么做到的,同理可得。
      

  2.   

    无论是通过COOKIE还是localStoraage或者session和数据库,配合AJAX,都可以实现这种效果。
    原理想不明白,你就很难听懂,最好自己通过FIREBUG去看看人人的动态加载脚本,看看它怎么做的,当然,那只是方法之一,看完理解了,可以想想用别的方式试试。
      

  3.   


    为什么要把整个html存起来?只需要存一些数据就可以了吧,样式这些每一次打开都一样的,需要存么?
      

  4.   


    想知道怎么实现的。QQ音乐也是的。是html5 左下角的播放器 在放歌刷新页面也不影响放歌