使用時間戳引入css、js文件


使用時間戳引入css、js文件

前言

最近在一家創業公司實習,主要負責新版官網和商家平台管理系統的前端開發和維護,每次測試都要上傳文件到ftp服務器端測試,初期由於更新修改比較頻繁,每次都是直接上傳覆蓋css、js、php文件,鏈接方式是普通的鏈接而沒有添加時間戳。由於大多數服務器端或CDN都會對css、js和圖片這些靜態的內容設置緩存和gzip壓縮,到了IE這里又會在本地做一個緩存。所以當我們在服務器端更新了css、js文件之后,客戶端經常會出現沒有更新的現象,即瀏覽器會緩存你網站之前css、js的一些版本,導致一些問題的出現。

ps:並且我們不會要求客戶每次訪問你的網站都要清除下緩存,刷新一下頁面。所以為了得到服務器端最新版的靜態內容,在引入相關css、js文件時就有必要使用時間戳。(格式大概是:xxx.css?t=aaa或xxx.js?t=bbb)如淘寶首頁源碼:

 

使用

這些時間戳標志着修改css、js等文件的日期,並且是動態生成的,可以在后台使用php或其他語言獲取,然后前台輸出。這樣服務器端每次修改,瀏覽器端都會得到同步更新,用戶訪問網站時不會導致相關問題出題。

php對時間戳的操作

一、php獲取時間戳方法有兩個:time()、strtotime()。
這兩個方法,都可以獲取php中unix時間戳,time()為直接獲取得到,strtotime($time, $now)為將時間格式轉為時間戳,$time為必填。由於對php不是很熟悉,詳情請看strtotime的用法 ,如下(注:該段代碼是從網上copy的

復制代碼
//獲得時間戳
<?php
$timestamp = time();
echo $timestamp;
?>
//更新timestamp的SQL的語句:
update 表名 set 字段名= $timestamp where 條件=值;
復制代碼

 

二、另外使用鈎子修改css、js的url的php方法可參考:使用php給css和js加上時間戳

 

結語

 總之一句話概括使用時間戳的目的就是:禁止緩存css、js,使瀏覽器同步更新到服務器端最新的靜態內容。由於本人技術很菜,這里只是把一些遇到的問題擺出來,好讓看到的人有這個意識,避免犯同樣的錯誤,相關解決方案因人各異。

因為分享,所以簡單;因為分享,所以快樂。
 
分類:  web前端
標簽:  web前端php


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM