[英]Is putting a php script in the src of the image tag slower than normal and by how much?
如果我將此標記放在HTML中:
<img src="http://server/imageHandler.php?image=someImage.jpg" />
代替
<img src="http://server/images/someImage.jpg" />
並使用imageHandler.php腳本讀取圖像文件,輸出到期標頭並打印圖像數據,我希望它會變慢。 這是操作圖像標題的可行方法,還是因為圖像無處不在,所以性能損失太大。 還有其他方法可以通過我的PHP代碼在圖片上設置過期標頭?
是的,運行任何PHP腳本比提供靜態文件要慢。
相反,您可以使用Apache配置指令設置expire標頭。 請參閱有關mod_expires
的文檔。 例如,您可以將以下指令放入Apache httpd.conf或.htaccess文件中:
# enable expirations
ExpiresActive On
# expire JPG images after a month in the client's cache
ExpiresByType image/jpg A2592000
嘗試類似
header("Expires: <the date>");
http_send_file("someImage.jpg");
來自http://us3.php.net/manual/en/function.http-send-file.php http_send_file函數(如果按我認為的方式工作)將文件直接從磁盤復制到網絡接口,因此它以與服務器本機相同的速度發送圖像本身。 (當然,運行PHP解釋器所花費的時間仍然會使整體請求比提供靜態文件慢一些。)
至少有另一個答案提到,如果您正在運行Apache,設置Expires標頭(或任何其他標頭)的最佳方法可能是使用.htaccess
文件,或者如果可以訪問main則更好。服務器的配置文件,將Expires配置放在此處。 看看mod_expires 。
如果圖像處理程序使用GD或Imagick,它將比常規img標簽慢得多。
我建議將圖像輸出緩存到一個臨時文件中,如果該文件存在,則圖像處理程序僅輸出原始數據,但是如果應該創建一個新文件,則將其生成一次,然后再次用於緩存。
您可以使用htaccess設置到期時間。
那將取決於imageHandler.php執行的任務。 您可以通過以毫秒為單位打印代碼中的時間來進行測量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.