phpcss緩存
css,js後綴加版本號應該可以吧,我都是加一個時間戳進去,沒出現緩存的現象
② php中資料庫的緩存是什麼意思怎麼理解伺服器端的緩存和瀏覽器里的緩存是一個原理嗎
第一個問題:
資料庫緩存
我們知道當網站訪問量很大的時候,用戶直接去訪問你的資料庫,這個時候資料庫壓力很大,往往會導致你的數據伺服器蹦了,或者伺服器崩了。
那麼這個時候的解決方案從資料庫來說,就是加上緩存層,那麼常用的緩存就是redis,memcache了,或者有人使用文件。
第二個問題:
伺服器端的緩存:
文件緩存屬於伺服器上的,redis或者memcache也是屬於你伺服器端的緩存
第三個問題:
瀏覽器緩存,我們知道當你訪問網頁的時候,瀏覽器會去給你緩存網頁,會把你網頁的靜態載入文件去緩存,你按f5刷新實際上第二次訪問的是你的瀏覽器的緩存,當然這個可以根據header頭的參數去改動,你按ctrl+f5就是強制刷新式的訪問,這個時候就會重新去請求伺服器拿文件了!
③ 如何使php程序中緩存失效呢
一般緩存不是PHP的原因,基本上是由於瀏覽器導致的;
解決的方法如下:
將所有的外載入CSS地址後面加上一個?t=時間戳,如<link href="css/detail.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
js外載入文件和圖片同樣的處理方法
④ 如何讓瀏覽器不載入緩存CSS和JS
我們在網頁製作中會碰到如果我上傳js,css之後用戶以前打開過頁面那麼這樣不會載入新的css或js文件而是載入緩存中的文件,那麼我要怎麼讓瀏覽器不載入緩存CSS和JS呢?下面一聚教程小編來給各位介紹。
現在大多數瀏覽器都會緩存網站上的圖片、CSS 和 JS 文件,以提高載入速度。當你的網站修改 CSS 和 JS 的時候往往因為緩存的原因無法立刻生效。
這樣舊的 CSS 和新的 Html 就可能會導致錯誤,這里有個小技巧,可以保證瀏覽器不會緩存 CSS 和 JS,只需要在文件結尾隨便加點參數即可,這樣瀏覽器就會認為這是不同的文件。
代碼如下
復制代碼
<link rel="stylesheet" type="text/css" href="/style.css?ver=123" />
如果用 PHP 把現在的時間作為版本號,這樣每次都會重新載入:
代碼如下
復制代碼
<link rel="stylesheet" type="text/css" href="/style.css?ver=<?php echo time(); ?> " />
當然這樣做會付出代價,完全打破瀏覽器的緩存機制,導致每次都會重新載入相同的 CSS 和 JS
最好的解決方案應該是只有在 CSS 和 JS 文件被修改的時候才會重新載入。這里要介紹一個 PHP 的 filemtime() 函數,filemtime() 函數可以返迴文件最後被修改的時間,這樣只有在修改文件的時候版本才會變化。
代碼如下
復制代碼
<?php $css = '/style.css' ?>
<link rel="stylesheet" type="text/css" href="?ver=<?php echo $css . filemtime( $css ); ?>" />
WordPress
如果你使用 WordPress,可以通過 WordPress 提供的腳本排隊機制掛載腳本:
代碼如下
復制代碼
$css = get_stylesheet_directory() . '/css/style.css';
wp_enqueue_style( 'style', $css, NULL, filemtime( $css ) );
⑤ php 中如何使用緩存,使用哪種緩存機制最好;
這要根據你的實際情況來定,有文件緩存,資料庫緩存,還有memcache緩存。。。。。
⑥ 如何防止js和css緩存
解決辦法一:每次修改js或css文件後,都要手工修改那個版本號,注意:是每修改一次(哪怕僅僅是改了一個字元)都要修改版本號;
解決辦法二:如果嫌手工修改太麻煩,那可以通過程序來自動修改(用隨機數做版本號)。如果你的網站是動態的,那可以通過後台程序來改,比如ASP的:
<link rel="stylesheet" href="static/mimi/css/main.css?v=<%=rnd()%>" type="text/css"/>
PHP的:
<link rel="stylesheet" href="static/mimi/css/main.css?v=<?php echo mt_rand(); ?>" type="text/css"/>
如果是靜態網站那就要js腳本來實現了,這個稍微麻煩點,這里就不說了。
其實上述方法一和方法二的目的都是為了使每次打開的js或css的url不同,這樣瀏覽器就不會去緩存區取數據,而是直接到網站下載。
如果上述方法仍然無效,那就是你的瀏覽器的緩存機制存在問題,比如「從不檢查網頁的新版本,除非手動刷新」,這個就要你自己去設置了。
⑦ php 數據緩存
1、普遍緩存技術:
數據緩存:這里所說的數據緩存是指資料庫查詢PHP緩存機制,每次訪問頁面的時候,都會先檢測相應的緩存數據是否存在,如果不存在,就連接資料庫,得到數據,並把查詢結果序列化後保存到文件中,以後同樣的查詢結果就直接從緩存表或文件中獲得。
用的最廣的例子看Discuz的搜索功能,把結果ID緩存到一個表中,下次搜索相同關鍵字時先搜索緩存表。
舉個常用的方法,多表關聯的時候,把附表中的內容生成數組保存到主表的一個欄位中,需要的時候數組分解一下,這樣的好處是只讀一個表,壞處就是兩個數據同步會多不少步驟,資料庫永遠是瓶頸,用硬碟換速度,是這個的關鍵點。
2、 頁面緩存:
每次訪問頁面的時候,都會先檢測相應的緩存頁面文件是否存在,如果不存在,就連接資料庫,得到數據,顯示頁面並同時生成緩存頁面文件,這樣下次訪問的時候頁面文件就發揮作用了。(模板引擎和網上常見的一些PHP緩存機制類通常有此功能)
3、 時間觸發緩存:
檢查文件是否存在並且時間戳小於設置的過期時間,如果文件修改的時間戳比當前時間戳減去過期時間戳大,那麼就用緩存,否則更新緩存。
4、 內容觸發緩存:
當插入數據或更新數據時,強制更新PHP緩存機制。
5、 靜態緩存:
這里所說的靜態緩存是指靜態化,直接生成HTML或XML等文本文件,有更新的時候重生成一次,適合於不太變化的頁面,這就不說了。
以上內容是代碼級的解決方案,我直接CP別的框架,也懶得改,內容都差不多,很容易就做到,而且會幾種方式一起用,但下面的內容是伺服器端的緩存方案,非代碼級的,要有多方的合作才能做到
6、 內存緩存:
Memcached是高性能的,分布式的內存對象PHP緩存機制系統,用於在動態應用中減少資料庫負載,提升訪問速度。
7、 php的緩沖器:
有eaccelerator, apc, phpa,xcache,這個這個就不說了吧,搜索一堆一堆的,自己看啦,知道有這玩意就OK
8、 MYSQL緩存:
這也算非代碼級的,經典的資料庫就是用的這種方式,看下面的運行時間,0.09xxx之類的
9、 基於反向代理的Web緩存:
如Nginx,SQUID,mod_proxy(apache2以上又分為mod_proxy和mod_cache)
10、 DNS輪詢:
BIND是一款開放源碼的DNS伺服器軟體,這個要說起來就大了,自己搜索去,大家知道有這個東西就行了。
⑧ centos7 nginx php7 laravel 環境下的php項目中css和js緩存去不掉
這個緩存問題我這邊也有。
可以考慮用前端管理工具。
⑨ 載入頁面時,自動刷新一次,只要一次,解決CSS緩存問題。用JS或JQUERY或PHP代碼實現
首次載入刷新是需要記錄網站訪問記錄的,常用方法使用cookie記錄和session記錄。
cookie步驟如下:
第一步:javascript代碼判斷是否存在cookie記錄值
第二步:如果有判斷非第一次載入,如果沒有就創建一個cookie記錄值,以備下次載入判斷。
cookie有存活周期,但是技術成本較低。
session記錄技術成本較高,伺服器壓力增大。建議少用。
⑩ php模版中css的存放位置
一般存在根目錄下style類似的目錄里
調用時用
<link href="/style/css名字" rel="stylesheet" type="text/css">