国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

PHP頁面靜態(tài)化的優(yōu)缺點(diǎn)與實(shí)現(xiàn)

瀏覽:106日期:2022-06-06 16:20:50
目錄
  • 前言
  • 一、頁面靜態(tài)化概念
    • 靜態(tài)化定義
    • 靜態(tài)頁面
    • 動(dòng)態(tài)頁面
    • 靜態(tài)化分類
    • 靜態(tài)化優(yōu)點(diǎn)和缺點(diǎn)
  • 二、靜態(tài)化實(shí)現(xiàn)
    • 其他

      前言

      隨著網(wǎng)站的內(nèi)容的增多和用戶訪問量的增多,網(wǎng)站加載會(huì)越來越慢,受限于帶寬和服務(wù)器同一時(shí)間的請求次數(shù)的限制,,我們往往需要在此時(shí)對我們的網(wǎng)站進(jìn)行代碼優(yōu)化和服務(wù)器配置的優(yōu)化。

      一、頁面靜態(tài)化概念

      靜態(tài)化定義

      靜態(tài)化就是指把原本的動(dòng)態(tài)生成的 html 頁面變成靜態(tài)內(nèi)容保存起來,當(dāng)用戶客戶端請求的時(shí)候,直接返回靜態(tài)頁面,不用再經(jīng)過服務(wù)渲染,不用查詢數(shù)據(jù)庫,可以大大減少服務(wù)器和數(shù)據(jù)庫壓力,顯著提升網(wǎng)站性能。

      靜態(tài)頁面

      靜態(tài)頁面,即靜態(tài)網(wǎng)頁,是實(shí)際存在的,無需經(jīng)過服務(wù)器的編譯,直接加載到客戶瀏覽器上顯示出來。靜態(tài)頁面需要占一定的服務(wù)器空間,且不能自主管理發(fā)布更新的頁面,如果想更新網(wǎng)頁內(nèi)容,要通過FTP軟件把文件DOWN下來用網(wǎng)頁制作軟件修改(通過fso等技術(shù)例外)。常見的靜態(tài)頁面舉例:.html擴(kuò)展名的、.htm擴(kuò)展名的。

      動(dòng)態(tài)頁面

      動(dòng)態(tài)頁面是通過執(zhí)行asp,php,jsp,.net等程序生成客戶端網(wǎng)頁代碼的網(wǎng)頁。 動(dòng)態(tài)頁面通??梢酝ㄟ^網(wǎng)站后臺(tái)管理系統(tǒng)對網(wǎng)站的內(nèi)容進(jìn)行更新管理。發(fā)布新聞,發(fā)布公司產(chǎn)品,交流互動(dòng),博客,網(wǎng)上調(diào)查等,這都是動(dòng)態(tài) 網(wǎng)站的一些功能。也是我們常見的。 動(dòng)態(tài)頁面常見的擴(kuò)展名有:.asp .php .jsp .cgi.aspx 等。 注意:動(dòng)態(tài)頁面的“動(dòng)態(tài)”是網(wǎng)站與客戶端用戶互動(dòng)的意思,而非網(wǎng)頁上有動(dòng)畫的就是動(dòng)態(tài)頁面。

      靜態(tài)化分類

      • 從形式看:純靜態(tài)和偽靜態(tài)
      • 從范圍看:整體靜態(tài)化和局部靜態(tài)

      靜態(tài)化優(yōu)點(diǎn)和缺點(diǎn)

      優(yōu)點(diǎn):

      • 適合 SEO,有利于搜索引擎收錄
      • 提升網(wǎng)站速度和穩(wěn)定性
      • 網(wǎng)站更加安全,HTML 頁面避免 PHP 相關(guān)漏洞

      缺點(diǎn):

      • 生成靜態(tài)頁面多,占用更多的存儲(chǔ)空間
      • 增加網(wǎng)站開發(fā)成本和維護(hù)成本

      二、靜態(tài)化實(shí)現(xiàn)

      認(rèn)識(shí) PHP Buffer

      在php中,buffer其實(shí)就是緩沖區(qū),一個(gè)內(nèi)存地址空間,主要用于存儲(chǔ)數(shù)據(jù);默認(rèn)是開啟狀態(tài),大小默認(rèn)4096,在php.ini文件中由output_buffering配置,只有當(dāng)緩沖區(qū)滿了或者 php 運(yùn)行完畢,才將數(shù)據(jù)輸出去。

      php.ini 代碼示例:

      output_buffering = on#打開output緩沖,默認(rèn)打開的。

      緩沖流程:

      # 詳細(xì)了解輸出過程,大家可以自行查閱
      1.打開了 php 輸出緩存: echo,print -> php output_buffring -> server buffering -> browser buffering -> browser display
      2.未打開 php 輸出緩存: echo,print -> server buffering -> browser buffering -> browser display

      原生PHP輸出(創(chuàng)建 index.php 文件,本地配置虛擬域名"www.test.vip")。

      代碼如下(示例):

      <!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>網(wǎng)頁靜態(tài)化</title></head><body><h1>排名</h1><ul>    <?php for ($i = 1; $i <= 5; $i++) { ?><li>No.<?php echo $i; ?></li>    <?php } ?></ul><?php ?></body></html>

      請求如下(www.test.vip/index.php):

      使用PHP文件讀寫功能生成靜態(tài)頁面

      代碼如下(示例):

      <?php$data = "<!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>網(wǎng)頁靜態(tài)化</title></head><body><h1>排名</h1><ul>    <li>No.1</li>    <li>No.2</li>    <li>No.3</li>    <li>No.4</li>    <li>No.5</li></ul></body></html>";$fp = fopen("index.html", "w");if (!$fp) {    echo "System Error";    exit();}fwrite($fp, $data);fclose($fp);echo "生成 index.html 成功!";

      其中"$data"數(shù)據(jù)是解析好的前端代碼,若包含 PHP 原生代碼是無法解析的,那如何把動(dòng)態(tài)的 PHP 語言靜態(tài)化?

      PHP OB 緩存機(jī)制生成靜態(tài)頁面

      代碼如下(示例):

      <?phpob_start();require_once("index.php"); // 引入模版文件$data = ob_get_contents();file_put_contents("index.html", $data); // 生成靜態(tài)文件 index.htmlob_end_clean(); // 輸出信息并清除緩存$fp = fopen("index.html", "w");if (!$fp) {    echo "System Error";    exit();}fwrite($fp, $data);fclose($fp);echo "生成 index.html 成功!";

      其他

      ob_start() // 打開輸出控制緩沖,若 php.ini 已經(jīng)開啟,那么這里會(huì)開啟一個(gè)新的輸出緩沖區(qū);
      ob_get_length() // 返回輸出緩沖區(qū)的長度
      ob_get_level() // 返回輸出緩沖區(qū)的嵌套級(jí)別
      ob_get_status() // 返回輸出緩沖區(qū)的狀態(tài)(數(shù)組形式返回,默認(rèn)返回最頂層,參數(shù)為true時(shí)返回所有)
      ob_get_contents() // 返回輸出緩沖區(qū)的內(nèi)容
      ob_get_clean() // 以字符串格式返回當(dāng)前輸出緩沖區(qū)并關(guān)閉輸出緩沖,等價(jià)于ob_get_contents和ob_end_clean);
      ob_end_clean() // 清空(擦除)緩沖區(qū)并關(guān)閉輸出緩沖
      ob_get_flush() // 以字符串返回輸出緩沖區(qū)內(nèi)容并關(guān)閉緩沖
      ob_end_flush() // 沖刷出(送出)輸出緩沖區(qū)內(nèi)容緩沖并關(guān)閉輸出緩沖

      到此這篇關(guān)于PHP頁面靜態(tài)化的優(yōu)缺點(diǎn)與實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)PHP頁面靜態(tài)化內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: PHP
      相關(guān)文章:
      主站蜘蛛池模板: 中文字幕视频网 | 久热香蕉在线视频 | 91久久精一区二区三区大全 | 欧美一级美片在线观看免费 | 国产三级在线观看播放 | 深夜爽爽爽gif福利免费 | 亚洲aⅴ天堂 | 欧美日本一道高清二区三区 | 俄罗斯一级黄色片 | 国内自拍视频一区二区三区 | 免费a网 | 羞羞一区二区三区四区片 | 成人久久免费视频 | 久久免费国产精品一区二区 | 精品一区二区三区免费视频 | 孕妇孕交视频 | 美女被免费网站视频软件 | 欧美日韩在线第一页 | 日韩国产精品99久久久久久 | 国内亚州视频在线观看 | 国产成人免费在线 | 毛片美国| 国产aⅴ一区二区三区 | 国产α片 | 日韩欧美在线播放视频 | 精品欧美成人bd高清在线观看 | 996热这里有精品青青草原 | 亚洲手机在线 | 欧美—级v免费大片 | 亚洲a级在线观看 | 欧美日韩中文国产一区二区三区 | 欧美69xx | 国产孕妇做受视频在线观看 | 亚洲加勒比 | 亚洲1314| 国产欧美一区二区久久 | 免费观看a毛片一区二区不卡 | 波多野一区二区三区在线 | 亚洲伊人色综合网站小说 | a一级特黄日本大片 s色 | 亚洲男人的天堂在线视频 |