关于网站换皮肤的功能,谁可以告诉下mac.pcbeta.com 它的换肤原理?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于网站换皮肤的功能,谁可以告诉下mac.pcbeta.com 它的换肤原理?

一直想实现mac.pcbeta.com 的皮肤功能。
最近写了一个JS 来实现,将用户设置的皮肤名字保存在localstorage ,每次刷新页面的时候去调用保存在localstorage 中的字段,然后根据字段引用新的皮肤所包含的CSS文件。
但是写完之后发现,虽然能够实现,但是用户每次刷新的时候都需要执行这个脚本,会不会很耗资源?
其实耗资源还是小事,最重要是在脚本运行前,网页的皮肤最先是默认的,没有引入新的CSS 文件的,但执行后网页界面才改变。

这样一来,每次刷新页面的时候,都会出现一次闪过的白屏。(默认皮肤为白色,设置使用的皮肤为其他颜色),很不舒服。

那么mac.pcbeta.com他们是怎么实现的?

我看到他们每次换皮肤的时候都会刷新页面,并且提交一个?styleid=34,然后服务器获取到这个styleid 之后用后端脚本插入?具体要怎么实现?还要指定知道是哪个访客设置的皮肤

展开
收起
落地花开啦 2016-06-12 17:24:15 2817 0
1 条回答
写回答
取消 提交回答
  • 落地花开啦
    喜欢技术,喜欢努力的人

    你可以写成这样

    if styleid="black"
        <link href="black.css">
    elseif styleid="red"
        <link href="red.css">
    else
        <link href="common.css">

    或者这样

    styleid = isset(styleid) ? styleid : 'common';
    <link href="{styleid}.css">

    不过,mac.pcbeta.com也是要跳页面啊。。在某些浏览器上也是会白一下的。。

    2019-07-17 19:34:43
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
如何高效的制作主机次时代游戏
立即下载
Flash Player最新安全特性分析 及绕过思路
立即下载
Flash Player最新安全特性分析及绕过思路
立即下载