V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yumijie
V2EX  ›  程序员

js 让局部页面拒绝刷新怎么做?

  •  
  •   yumijie · 2016-05-18 17:06:06 +08:00 · 4250 次点击
    这是一个创建于 2907 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求是这样的:刚做了个博客,首页嵌入一个网页播放器,但是发现刷新页面之后播放器也重置了,想请教大侠,怎样做才能让访客访问网站刷新页面播放器依然不受影响地工作.

    应该说明白了吧.
    事例:http://cnbar.cn/emlog (右下角的播放器,刷新页面播放器就停止重新播放)
    21 条回复    2016-05-19 16:02:26 +08:00
    Garwih
        1
    Garwih  
       2016-05-18 17:09:50 +08:00
    pjax
    yumijie
        2
    yumijie  
    OP
       2016-05-18 17:12:38 +08:00
    @Garwih 这个我也听人说,pjax 文件我都不知道去那下载,更不知道怎么做
    pimin
        3
    pimin  
       2016-05-18 17:14:07 +08:00 via Android
    cookies ,用 js 每几秒更新一次,对应的是当前列表,歌曲 ID ,播放时间。
    reload 之后读取上述信息继续播放。
    yumijie
        4
    yumijie  
    OP
       2016-05-18 17:15:50 +08:00
    @pimin 这个好像不行,直接禁止某段 div 刷新更方便.问题是我不知道 js 怎么写,郁闷
    yoa1q7y
        5
    yoa1q7y  
       2016-05-18 17:17:34 +08:00
    @pimin 这样体验也很糟糕
    最好像网页版的网易云音乐一样做单页面应用
    yumijie
        6
    yumijie  
    OP
       2016-05-18 17:28:30 +08:00
    @yoa1q7y 恩,理想状态是 http://www.neurallinker.com
    但是自己不会弄
    banricho
        7
    banricho  
       2016-05-18 17:36:43 +08:00
    单页
    不会的话…… iframe 2333
    chairuosen
        8
    chairuosen  
       2016-05-18 17:39:00 +08:00
    唯一的办法是弄个大 iframe ,像网易云音乐。
    其他,不行。
    xummerj
        9
    xummerj  
       2016-05-18 17:40:50 +08:00
    我的站也是一个播放器 http://www.xummer.cn
    xummerj
        10
    xummerj  
       2016-05-18 17:53:43 +08:00
    我是 pjax 都懒得用,自己写了个 ajax ,自己源代码里找找,可以参考下,在底部 <!-- Piwik -->前
    McContax
        11
    McContax  
       2016-05-18 18:05:35 +08:00 via Android
    pjax 什么鬼,我只知道 ajax
    xqin
        12
    xqin  
       2016-05-18 18:30:40 +08:00
    @xummerj 你的网页, 点浏览器的刷新按钮播放器 不停? 我怎么没看出来?

    @yumijie 你发的 http://www.neurallinker.com 这个, 点浏览器上面的刷新按钮, 音乐不会停? 我怎么没试出来?

    如果你的刷新的意思是只仅限于, 在你的网页里点连接跳转, 音乐不停, 这个可以实现.

    但如果要求 按 F5 或者点浏览器的刷新按钮, 也不停, 对不起, 这个功能目前不可能实现.

    上面 有人说网易, 网易的那个 你按 F5 或者点刷新按钮, 也照样是停掉的.

    @yumijie 先搞清自己的需求, 你一个"刷新", 没人知道你对刷新是怎么定义的, 按常规的刷新是包含 F5 和点刷新按钮的. 而包含这两个功能点的话, 这个要求是不可能实现的(当然你如果新开一个页面专门用于播放, 你刷新当前页, 音乐当然不会停, 但你刷你播放音乐的页面,不还是照样停嘛).
    xwartz
        13
    xwartz  
       2016-05-18 18:52:53 +08:00
    @McContax pushState + ajax
    yumijie
        14
    yumijie  
    OP
       2016-05-18 19:23:52 +08:00
    @xqin 网站内连接跳转,不是 F5
    yumijie
        15
    yumijie  
    OP
       2016-05-18 19:39:46 +08:00
    实现了方法,这里就不贴代码了.
    Tink
        16
    Tink  
       2016-05-18 19:41:48 +08:00 via iPhone
    pjax 是可以的
    xiamx
        17
    xiamx  
       2016-05-19 06:42:15 +08:00
    JS 都不知道怎么写还来问问题,还不赶快去学 JS !
    yimity
        18
    yimity  
       2016-05-19 08:55:42 +08:00
    谁告诉我 pajax 怎么阻止页面某个部分刷新?
    按了 F5 之后,整个页面刷新,怎么阻止页面某个部分刷新?
    Pajax 可以做单页,但是怎么阻止部分刷新?
    dabaii
        19
    dabaii  
       2016-05-19 09:35:47 +08:00
    别想了 目前只能用 iframe
    xummerj
        20
    xummerj  
       2016-05-19 10:44:22 +08:00
    @xqin 点浏览器的刷新,这没法实现吧。。只能保存播放状态后页面重新加载后恢复播放
    Balthild
        21
    Balthild  
       2016-05-19 16:02:26 +08:00 via iPhone
    不可能阻止页面的一部分不刷新,只能阻止整体页面刷新,然后用 js 手动更新部分页面和 URL ,然后这就叫 pjax
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2014 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:10 · PVG 09:10 · LAX 18:10 · JFK 21:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.