亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP頁面靜態化的優缺點與實現

瀏覽:100日期:2022-06-06 16:20:50
目錄
  • 前言
  • 一、頁面靜態化概念
    • 靜態化定義
    • 靜態頁面
    • 動態頁面
    • 靜態化分類
    • 靜態化優點和缺點
  • 二、靜態化實現
    • 其他

      前言

      隨著網站的內容的增多和用戶訪問量的增多,網站加載會越來越慢,受限于帶寬和服務器同一時間的請求次數的限制,,我們往往需要在此時對我們的網站進行代碼優化和服務器配置的優化。

      一、頁面靜態化概念

      靜態化定義

      靜態化就是指把原本的動態生成的 html 頁面變成靜態內容保存起來,當用戶客戶端請求的時候,直接返回靜態頁面,不用再經過服務渲染,不用查詢數據庫,可以大大減少服務器和數據庫壓力,顯著提升網站性能。

      靜態頁面

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

      動態頁面

      動態頁面是通過執行asp,php,jsp,.net等程序生成客戶端網頁代碼的網頁。 動態頁面通常可以通過網站后臺管理系統對網站的內容進行更新管理。發布新聞,發布公司產品,交流互動,博客,網上調查等,這都是動態 網站的一些功能。也是我們常見的。 動態頁面常見的擴展名有:.asp .php .jsp .cgi.aspx 等。 注意:動態頁面的“動態”是網站與客戶端用戶互動的意思,而非網頁上有動畫的就是動態頁面。

      靜態化分類

      • 從形式看:純靜態和偽靜態
      • 從范圍看:整體靜態化和局部靜態

      靜態化優點和缺點

      優點:

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

      缺點:

      • 生成靜態頁面多,占用更多的存儲空間
      • 增加網站開發成本和維護成本

      二、靜態化實現

      認識 PHP Buffer

      在php中,buffer其實就是緩沖區,一個內存地址空間,主要用于存儲數據;默認是開啟狀態,大小默認4096,在php.ini文件中由output_buffering配置,只有當緩沖區滿了或者 php 運行完畢,才將數據輸出去。

      php.ini 代碼示例:

      output_buffering = on#打開output緩沖,默認打開的。

      緩沖流程:

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

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

      代碼如下(示例):

      <!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>網頁靜態化</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文件讀寫功能生成靜態頁面

      代碼如下(示例):

      <?php$data = "<!DOCTYPE html><html lang=""><head>    <meta charset="utf-8">    <title>網頁靜態化</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"數據是解析好的前端代碼,若包含 PHP 原生代碼是無法解析的,那如何把動態的 PHP 語言靜態化?

      PHP OB 緩存機制生成靜態頁面

      代碼如下(示例):

      <?phpob_start();require_once("index.php"); // 引入模版文件$data = ob_get_contents();file_put_contents("index.html", $data); // 生成靜態文件 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 已經開啟,那么這里會開啟一個新的輸出緩沖區;
      ob_get_length() // 返回輸出緩沖區的長度
      ob_get_level() // 返回輸出緩沖區的嵌套級別
      ob_get_status() // 返回輸出緩沖區的狀態(數組形式返回,默認返回最頂層,參數為true時返回所有)
      ob_get_contents() // 返回輸出緩沖區的內容
      ob_get_clean() // 以字符串格式返回當前輸出緩沖區并關閉輸出緩沖,等價于ob_get_contents和ob_end_clean);
      ob_end_clean() // 清空(擦除)緩沖區并關閉輸出緩沖
      ob_get_flush() // 以字符串返回輸出緩沖區內容并關閉緩沖
      ob_end_flush() // 沖刷出(送出)輸出緩沖區內容緩沖并關閉輸出緩沖

      到此這篇關于PHP頁面靜態化的優缺點與實現的文章就介紹到這了,更多相關PHP頁面靜態化內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

      標簽: PHP
      相關文章:
      主站蜘蛛池模板: 很黄很色的小视频在线网站 | 国产精品亚洲精品爽爽 | 日韩在线 在线播放 | 国产精品成人一区二区 | 久青草国产手机在线视频 | 欧美大片在线观看 | 亚洲美女在线观看 | 日本毛片在线观看 | 国产在线观看91精品一区 | 日日噜噜夜夜狠狠久久丁香七 | 久久精品免看国产 | 欧美另类偷自拍视频二区 | 免费羞羞视频网站 | 精品一二| 亚洲你xx我xx网站 | 久久911| 国产一国产一级毛片视频 | 欧美一区二区三区免费观看视频 | 国产色婷婷精品综合在线 | 欧美伊人激情 | 国产成人亚洲精品无广告 | 国产成人禁片在线观看 | 韩国美女丝袜一区二区 | 最新欧美精品一区二区三区 | 怡红院日本一道日本久久 | 日本高清动作片www网站免费 | 日本三级带日本三级带黄国产 | 免费久福利视频在线观看 | 97国产超级碰碰在线视频 | 日韩特级黄色片 | 免费中文字幕在线 | 成人午夜精品视频在线观看 | 欧美人伦禁忌dvd | 一本高清在线 | 初女破苞国语在线观看免费 | 羞羞答答免费人成黄页在线观看国产 | 国产麻豆媒一区一区二区三区 | 午夜国产在线观看 | 日本一级毛片视频在线看 | 小明精品国产一区二区三区 | 在线观看国产精品入口 |