程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 頁面靜態化,頁面靜態

頁面靜態化,頁面靜態

編輯:關於PHP編程

頁面靜態化,頁面靜態


大型網站的優化技術:

1,SEO,優化一種,

2,頁面靜態化

3,memcache(內存緩存)

4,服務器集群技術

 

 

總的目標:提高網站的訪問速度,SEO目的:提高網站的排名,(解決的是速度)

SEO: google 的優化,百度的優化:

 

今天先從頁面靜態化來講:

先講幾個概念:

1,靜態網址

純粹的html文檔

http://localhost/dir&file/var.html

但是大家不要以為 後綴是html的就是靜態網站,

 

2,動態網址(網站)

localhost/dir&file/var.php?name=admin&id=2

根據用戶在地址欄傳遞不同的參數,顯示不同的結果

 

3,偽靜態網址

偽靜態的:

TP框架的時候,url的幾種模式:

1,/  pathinfo

2, MVC ?m=&a=

3,重寫模式:(和pathinfo模式區別:重寫少了入口文件)

修改apache的配置

增加htacess文件

tp框架中重寫模式,偽靜態:

localhost/dir&file/news-id/2/name/admin.html

 

為什麼要將動態網站改成靜態的形式:

1,/*1=1*/  防止sql注入

2,動態的網站不利於SEO,因為?後面的參數會動態的變化,搜索引擎抓取的時候,不知道該怎麼保存

,、sina.com/index.html  index.php?act=index

 

原則:能不從數據庫獲得數據就盡量不要去操作數據庫

 

如何實現頁面靜態化:

頁面靜態化的分類:

1,按照形式:

1,真靜態

2,偽靜態

2,按照范圍:

   1,局部靜態話(jquery,ajax)

   2,全部靜態化

 

搜索引擎:

1,抓取你的網站的內容,不是一股腦的抓取所有的內容,都放到一塊

2,而是將你的內容進行歸類,根據你的關鍵字,進行排名

 

如何做到SEO友好呢?

1,百度的建議:

url的長度:不能多於 255個字節

搜索引擎抓取的時候:

從首頁開始觸發:遇到一個頁面抓取它的內容,將內容保存起來,
www.sina.com/index.html

www.sina.com/news/soprt.html

因為越短的抓取的越早,越頻繁,更新就越快,認為你很好

而且每個頁面抓取的時間有限,每個頁面最多分配 5秒之內

當然網站越好,排名越高,分配的時間越長

 

2,meta 標簽的keywords  desciption 標簽也是做給搜索引擎看的

然SE 會根據你的關鍵字和描述進行大概的分類

可以禁止搜索引擎抓取我們網站的內容:

在網頁代碼<head>與</head>的之間,加入nofollow屬性!!如果是超鏈接,就是<a>標簽裡加入

rel="nofollow"即可!

(2)robots.txt

 

關鍵字

description

 

(3)盡量不要在前台使用 frame  framset , 後台可以使用,框架*(因為後台避免搜索引擎抓取)

(4)flash,盡量使用圖片代替,jquery做一些特效

(5)圖片,盡量給每一個圖片增加 alt屬性,圖片還沒有顯示的時候,先顯示alt提示文字

 

SEO優化----

 

 

 

如何實現頁面靜態化:

通過php的ob緩存來實現

提高排名

提高速度

隨著360綜合搜索,出現,百度廣告非常謹慎

 

 

1,通過php的ob緩存來實現

通過工具可以測試,網站的訪問速度

apache自帶了一個 ab.exe 這個工具

可以檢測你的網站的訪問速度

 

 

php5.2 之前默認情況是關閉ob緩存,在php5.3之後,默認是開啟ob緩存的

在php.ini   output buffering

面試:使用開發環境:apache2.2.6

mysql 版本: 5.3

 

 

使用php的ob緩存實現頁面靜態化

1,緩存:smarty緩存, ThinkPHP框架的緩存,PHP的ob緩存

 

  (1)ob---緩存,先將輸出的數據呢,緩沖到一塊空間

然後顯示的時候再顯示這塊空間的緩存的數據

因為默認有一些header信息,然後一遇到echo ,就會給浏覽器會送數據

因為默認的header已經隨著echo被發送到浏覽器了

 

ob緩存入門

沒有錯誤提示了呢?

引出ob緩存的原理:

php的緩存:

(1)ob緩存

先判斷一下,是否開啟ob緩存,如果你開啟了,先將輸出的數據放到ob緩存中,如果你沒有開啟ob緩存

,然後放到程序緩存中

 

(2)程序緩存

就是如果沒有開啟ob緩存,先將數據緩存到程序中,等echo都完了,再統一的輸出

 

浏覽器也有緩存:

浏覽器先攢著數據,等達到一定的數量之後(ie 500多MB)的時候才輸出

 

如何獲得緩存的數據

 

1,ob_start()  先將輸出的數據優先放入到 ob緩存中

2,ob_clean()  清空緩存,但是沒有關閉

3,ob_end_clean()  清空緩存,同時也關閉緩存

4,ob_flush()   將ob緩存的數據,輸出到程序緩存

5,ob_end_flush()  將ob緩存的數據輸出到程序緩存並且關閉ob緩存

 

ob_flush(); //只是將ob緩存的數據,輸出到程序緩存

ob_end_flush();  //輸出之後再將ob緩存緩存關閉

 

flush()     會將程序緩存的數據,輸出到浏覽器緩存

浏覽器緩存:類似於php的程序緩存,先將每一個輸出輸出到程序緩存,等輸出完畢再顯示到浏覽器

 

PHP的緩存機制:

1,ob緩存,如果開啟了ob緩存,優先將數據放到ob緩存中

2,程序緩存,如果沒有開啟ob緩存,再將數據緩存到程序緩存

 

頁面靜態化案例:

新聞管理系統:

output_buffering = Off         關閉緩存

 

 

補課說了一下:

mysql數據類型:

varchar(32)  : 顯示多少位

varchar(255)  :

 

一個字母、數字,占多少個字節:utf-8  2  漢字:3

gbk  都是占1個字節

 

1個varchar     表示的長度范圍  0-65535之間  varchar(255)

 

char 定長的字符串: char(255)   編碼的位數,255指的是顯示/保存多少位

char() 定長,不管你存儲了多少,都站指定的字節數

 

 

int: 最長是429.。。 15175290987  百億   表示4個字節

tinyint: 1個字節     0-255  unsigned

 

 

myisam: 和 innodb: 區別

1,myisam 不支持事務,innodb支持事務

2,myisam 查詢速度比innodb快,

3,myisam 不支持外鍵,innodb支持外鍵(mysql的新版本已經支持外鍵)

 

外鍵,保持數據的完整性,

事務:邏輯上的一組操作,組成這組操作的各個單元,要麼都成功,要麼都失敗

三大特性:

原子型

一致性

 

完整的項目,不是統一的都是myisam也不是都是innodb  而是根據具體的業務

 

問題:每次訪問都要查詢數據庫,頻繁的操作數據庫,造成服務器,數據庫壓力增加,而且用戶可能在

10分鐘之內新聞內容不會更新,所以我們這樣:

第一個人訪問之後,生成靜態頁面,

第二個人,3,4 再訪問這個頁面的時候,直接顯示靜態頁面

 

這個時候有個問題:

如果新聞不幸更新了,該怎麼辦?

1,判斷

 

 

最終,要添加新聞的時候,或者修改新聞的時候,都應該生成靜態頁面

 

添加新聞的時候生成靜態頁面:

提交之後,顯示入庫,然後生成靜態頁面

 

涉及模板替換內容

創建一個模板文件,當樣式基本固定,但是內容不確定的時候,先用占位符代替數據部分

然後,獲得數據之後,在替換過來

r fopen()

w

 

fgets()函數,讀取一行內容(只是)

fopen() 打開文檔  r w

fwrite() 向打開的這個文檔中寫入內容

feof()  測試當前文檔是否讀取到了結尾

fclose() 打開文檔後一定要記得關閉

file_put_contents()  向一個文件中寫入內容

file_get_contents()  讀取文件的內容

 

 

1,網站分類

2,網站優化百度 對網站優化建議:5點

3,如何檢測網站性能(訪問速度)

4,ob緩存開頭

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved