前端开发缓存问题的解决方案

在没有使用vue angular react 三大流行框架去开发静态的项目时,困扰我们最多的就是缓存问题,没有三大框架的优势之热刷新功能,如何做到我们修改了我们引用的外部文件里的某些内容,回到页面,刷新一下就能看到最新的效果或是样式呢?说的直白点就是动态的给文件加版本号,在没有接触php我是不知道如何用js去控制,为了安全,前端不具有改写文件的能力,我就想到了同样可以嵌套html内容的php语言,作为一个前端,懂点后端语言真的没坏事,不说废话了,上代码.

第一步:项目下面一定得有一个 控制版本的php文件,version.php,内容如下:

 1 <?php
 2 /**
 3  *
 4  * @authors shufei
 5  * @date    2018-06-17 12:15:27
 6  * @version $ver strtotime(date(‘Y-m-d H:i:s‘))
 7  */
 8 function AutoVersion( $file ) {
 9     $ver = strtotime(date(‘Y-m-d H:i:s‘)) ;
10     echo $file .‘?t=‘ .$ver;
11 }

这个 AutoVersion 方法需要一个参数也是文件的file路径 $file,版本号 $ver 赋值为实时的时间戳,当你项目的部分开发完成后可以设置 $ver为固定的一个值

第二步:将开发的html页面改为php页面,index.php

 1 <?php require_once "version.php";?>
 2 <!DOCTYPE html>
 3 <html>
 4 <head>
 5     <meta charset="utf-8">
 6     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 7     <meta name="viewport" content="width=device-width, initial-scale=1">
 8     <meta name="Generator" content="EditPlus?">
 9     <meta name="Author" content="">
10     <meta name="Keywords" content="">
11     <meta name="Description" content="">
12     <title>Document</title>
13     <link href="<?php AutoVersion(‘test.css‘); ?>" rel="stylesheet" type="text/css" >
14     <script src="<?php AutoVersion(‘test.js‘); ?>"></script>
15 </link>
16 </head>
17 <body>
18     <h1>Hello,world!</h1>
19 </body>
20 </html>
<?php require_once "version.php";?>表示依赖 version.php文件,因此 <?php AutoVersion(‘test.css‘); ?>和<?php AutoVersion(‘test.js‘); ?>都会被替换成原有的文件路径加版本号,如果 version.php 里的$ver是实时时间戳,那么test.js 或者 test.css文件里有任何修改,刷新一下都是最新的,没有缓存顾虑,再也不用手动的去耗时耗力的操作每个文件夹了

如果你还想要热刷新那种差不多的功能,哪就在你的开发页面index.php里head里加上 <meta http-equiv="refresh" content="3"> ,页面3秒自动刷新一次,同时文件也是最新的,css或js里的代码一旦被修改页面自动刷新展示最新的页面和效果,缺点嘛,你懂得,就是需要看dom结构,3秒一刷新,控制台element里看dom结构就重置了,是不是心想算了,还是不偷懒了,自己手动刷新一次又怎么了,不影响你的美丽动容

个人摸索出来的方法,没有接触PHP,如有问题请留言

原文地址:https://www.cnblogs.com/studyshufei/p/9192732.html

时间: 2024-08-22 11:39:45

前端开发缓存问题的解决方案的相关文章

Safari 前端开发调试 iOS 完美解决方案

在日趋现代化的 Web 网络中,各种现代浏览器和移动终端设备的用户百分比越来越高.对于我们 Web 前端开发者来说,运行 iOS Safari 浏览器的苹果移动设备对我们来说更是不容忽视的.然而当我们需要对前端页面进行测试调试时,桌面版 Safari 的表现并不是与移动版 Safari 一模一样的(主要缘起 CSS 中 device-width 的判断),因此我们只能直接在 iOS 设备上对 Safari 进行测试与调试. 本文主要介绍由苹果官方提供的 iOS 设备上 Safari 浏览器的前端

web前端开发规范

本文原创,这里首先声明,转载注明本文出处,翻版必究! web前端开发规范的现实意义 1.提高团队的协作能力 2.提高代码的重复利用率 3.可以写出质量更高,效率更好的代码 4.为后期维护提供更好的支持 5.可读性高 一.命名规则 1.html命名规则: a.文件名称命名规则:统一使用小写英文字母.数字.下划线的组合,不得包含汉字空格和特殊字符 2.命名原则:方便理解.方便查找 b.索引文件命名原则:index.html.index.htm.index.asp.index.aspx.index.j

Web前端开发推荐阅读书籍、学习课程下载

转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学习和跟着有经验的同事学习,读书也是必不可少的.书中有着相对完整的知识体系,每读一本好书都会带来一次全面的提高. 而如果深一脚浅一脚的学习,写出代码的质量会参差不齐.初学者的首要任务是成为靠谱的熟练开发者,能够稳定的输出有一定质量的代码. 前端技术发展速度特别快,总是涌现出很多新的东西,需要不断的学习

前端开发工程师如何在2013年里提升自己【转】--2016已更新升级很多何去何从?

大部分人非常在意个人在技术上的提升.但是保持对新技术的了解是一项不小的挑战, 毕竟我们需要的信息在数量上过于庞大.2012年里,伴随着前端发展的是大量的革命性突破和对前端的重新定义. 我们在实践的路上飞速前进,具体的进步体现在使用抽象化,优秀的代码质量,维护性上的提升以及更好的性能.如果你实在忙到没有时间来跟上最新的技术,不用担心. 随着假日的来临,我们就有了一些空闲的时间可以自己支配,我想,如果我把我收集的前端相关的精品讨论列表分享出来,那一定会对大家有一些帮助.你不需要把所有的都阅读一遍,但

移动web页面前端开发总结

移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (IE浏览器) :因为在早期IE占有大量的市场份额,所以以前有很多网页是根据这个Trident的标准来编写的,但是实际上这个内核对真正的网页标准支持不是很好,同时存在许多安全Bug. 2.Gecko:( FireFox )优点就是功能强大.丰富,可以支持很多复杂网页效果和浏览器扩展接口,缺点是消耗很多的资源,比如内存. 3.Webkit:

CDN公共库、前端开发常用插件一览表(VendorPluginLib)

=======================================================================================前端CDN公共库====================================================================================== 为什么使用前端CDN公共库: 使用前端CDN增加网页的并行载入速度,减少本地服务器的负担,节省流量.我们把静态资源放到自己的服务器上面固

前端开发规范文档(html,css,js)

首先吐槽一句,本来想上传word文档的,可是发现博客不能上传word文档,这就很尴尬了. 首先声明该规范不是本人写的,网上搜前端规范发现这个很详细就先复制下来做笔记,当然不可能啥都按规范来,每个公司的规范都不一样..仅供参考 前端开发规范文档 Html规范 1 代码风格 1.1 缩进 **[强制]**使用 4 个空格作为一个缩进层级,不允许使用 2 个空格或 tab 字符: 2 属性 2.1 属性引号 **[强制]**对于属性的定义使用双引号,不允许使用单引号,不允许不使用引号: 示例: <!-

前端开发的优化问题

以下摘取YaHoo 14条性能优化原则: Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在. 法则1. 减少HTTP请求次数 80%的最终用户响应时间花在前端程序上,而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等,的下载上.减少页面元素将会减少HTTP请求次数.这是快速显示页面的关键所在. 一种减少页面元素个数的方法是简化页面设计.但是否存在其他方式,能做到既有丰富内容,又能获得快速响应时间呢?以下是这

前端如何去做跨域解决方案

前言 那些你,你常用的跨域解决方案除了jsonp 之外,还有其他的吗?今日早读文章可以告诉你,本文由 金蝶 @scq000授权分享. 正文从这开始~ 浏览器在请求不同域的资源时,会因为同源策略的影响请求不成功,这就是通常被提到的"跨域问题".作为前端开发,解决跨域问题应该是一个被熟练掌握的技能.而随着技术不断的更迭,针对跨域问题的解决也衍生出了多种解决方案.我们通常会根据项目的不同需要,而采取不同的方式.这篇文章,将详细总结跨域问题的相关知识点,以便在遇到相同问题的时候,能有一个清晰的