不必需的样式脚本文件导致页面不能及时更新

时间:2021-05-08

在开发过程中,有时遇到由于缓存问题导致页面不能及时更新,有时页面引入了不必需的样式脚本文件,有时由于文件太多,字节过大导致页面的性能缓慢,为了解决这些问题,个人设想了一个初步的解决方案。

解决方案如下:

描述

备注

资源级别

页面的资源级别:

  • 全局级(Common)
  • 模块级(Module)
  • 页面级(Page)
  • 优化方案

    优化主要从以下几个方面:

  • 减少单个文件的字节大小
  • 减少文件的个数(即减少http请求数)

  • 其他的优化是从开发技巧上进行的,取决于专业水平

    文件输出方案

  • 合并
  • 压缩
  • 基于资源级别及优化方案,制定以下4种方案:

    1、直接引用单个文件依次引入(<link/>、<script/>)

    2、基于1,进行单个文件压缩

    3、按照资源级别合并成新的单个文件

    4、基于3,进行合并后的文件压缩


    思考点

    方案3: 如何确定合并的文件个数?


    缓存问题

    采用时间戳后缀

    f2econfig_json

    配置文件:

    var f2eJson={
    "Version":"v3",//版本

    "Update":"20091015",//根据时间戳更新缓存

    "Compress":"1",//文件输出方案(1,2,3,4)

    "Common":[//全站公共样式

    "common/global.css"

    ],

    "Module":{ //模块及样式

    "模块1":["product,.css"]

    },

    "Page":{//每个页面所拥有的样式

    "index.php":["","sys/index.css"],

    //第一个元素存储模块引用名称,无则留空

    "search.php":["模块1","product/search.css"]

    //引用多个模块,用 “,”隔开,比如: 模块1,模块2

    }

    }

  • php有专门的json转换库
  • js的配置结构同css的配置json
  • f2engine.php

    1、读取json配置文件,转化成php数组
    2、根据每个页面的资源参数,查找该页面拥有的样式资源
    3、根据文件输出方案,进行处理
    4、在页面上输出
  • 配置文件没有更新的情况下,只解析一次json为数组
  • 只解析一次资源,并将结果保存,供下次直接使用

  • 例子

    比如search.php这个页面的样式引用

  • 根据页面找到页面级资源: Page["search.php"]
  • 根据该数组的第一个值查找所引用的模块样式
  • 根据配置文件中的“Compress”值确定文件输出方案,并进行处理
  • 在页面上进行输出

    //全站样式 common

    <link type="text/css" href="common/global.pack.css?20091015" rel="stylesheet" />

    //模块样式 module

    <link type="text/css" href="product.pack.css?20091015" rel="stylesheet" />

    //页面样式 page

    <link type="text/css" href="product/serach.pack.css?20091015" rel="stylesheet" />

    注:压缩后文件名称变为 search.pack.css

  • 代码在开发中。欢迎大家一起探讨指教下。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章