php頁面靜態化

来源:http://www.cnblogs.com/tianxintian22/archive/2016/01/27/5164177.html
-Advertisement-
Play Games

如何優化頁面響應時間: 動態頁面靜態化 優化資料庫 使用負載均衡 使用緩存 如果頁面中的一些內容不經常改動,可以使用動態頁面靜態化。好處是:減少伺服器腳本的計算時間;降低伺服器的響應時間。 1、動態URL地址設置靜態形式(偽靜態) 例如:http://xxx.com/index.php?c=play


如何優化頁面響應時間:

  • 動態頁面靜態化
  • 優化資料庫
  • 使用負載均衡
  • 使用緩存

如果頁面中的一些內容不經常改動,可以使用動態頁面靜態化。好處是:減少伺服器腳本的計算時間;降低伺服器的響應時間。

1、動態URL地址設置靜態形式(偽靜態)

例如:http://xxx.com/index.php?c=play&id=1111    =>

http://xxx.com/play/1111.html  (並不是一個純靜態頁面)

2、buffer

buffer其實就是緩衝區,一個記憶體地址空間,主要用於存儲數據區域。

編寫一個buffer.php文件,並保存,並不是直接將文件內容保存在磁碟里,而是先把內容寫入到buffer中,當一個buffer寫滿的時候,會把buffer中的數據寫入到磁碟里,這是操作系統的buffer。

當執行一個PHP程式的時候,如果有輸出內容,會先放到輸出緩衝區,數據再通過tcp傳給客戶端或瀏覽器。

要想數據能夠放到輸出緩衝區,首先打開輸出緩衝,通過php.ini文件output_buffering = On或者ob_start(),然後使用ob_get_contents()獲取輸出緩衝區內容。

3、PHP實現頁面純靜態化

純靜態化的html文件放在伺服器端的磁碟。

基本方式:

  • file_put_contents()函數;

        int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

   成功會返回寫入到文件內數據的位元組數,失敗時返回false。

  • 使用PHP內置緩存機制實現頁面靜態化-output_buffering

  ob函數

   ob_start(); 打開輸出緩衝區

   ob_get_contents(void);返回輸出緩衝區內容

     ob_clean(void);清空輸出緩衝區

     ob_get_clean(void);得到當前緩衝區的內容並刪除當前輸出緩衝區

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 策略模式的用意是針對一組演算法,將每一個演算法封裝到具有共同介面的獨立的類中,從而使得它們可以相互替換。策略模式使得演算法可以在不影響到客戶端的情況下發生變化。策略模式是對演算法的包裝,是把使用演算法的責任和演算法本身分割開,委派給不同的對象管理。策略模式通常把一個系列的演算法包裝到一系列的策略類裡面,作為一個抽...
  • Visual Studio International Pack 包含一組類庫,該類庫擴展了.NET Framework對全球化軟體開發的支持。使用該類庫提供的類,.NET 開發人員可以更方便的創建支持多文化多語言的軟體應用下載地址:下載地址(1) (ChnCharInfo.dll)Simplifi...
  • 目前來說,使用JSON保存數據比較方便,前臺可以不用Test.aspx 頁面,可以直接用Html頁面,使用.aspx頁面的弊端就不在這裡熬述。 具體步驟如下: 1、新建一個Html頁面,命名為Test.html 1 <script type="text/javascript" src="easyui
  • 一般在網上搜C++如何調用C#的函數,出來的結果都是做成COM組件,但是這種方法dll安裝麻煩,需要註冊COM組件,需要管理員許可權,調試麻煩,經常需要重啟機器,反正有諸多不便。 然後在看《CLR via C#》時看到一種方法,可以免去這種苦惱。少廢話,先上代碼。C#類庫的:namespace Cl....
  • C#設計模式(1)——單例模式(Singleton)C#設計模式(2)——簡單工廠模式(Factory )C#設計模式(3)——工廠方法模式(Factory Method)C#設計模式(4)——抽象工廠模式(Abstract Factory)C#設計模式(5)——建造者模式(Builder Patt...
  • 上學期做過一個java web的網站,初步瞭解了java寫網站後臺的流程,但是個人代碼的封裝性很差,完成後也沒有再去改動,這幾天會花時間整理一下把博客寫出來。 最近開始學習android的開發,用的是android studio,由於AVD和genymotion都用不上,所以用的真機調試,昨天發現掛
  • Python前世今生 python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程式,作為ABC語言的一種繼承。 python的種類 Cpython python的官方版,使用C語言實現,使用最為
  • 事務工具在回滾時,遇到保存點停止回滾。(準確地將是指定的保存點,我不打算寫論文,差不多就行。:)要想實現上述功能,必須:……
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...