簡體   English   中英

PHP-使用`file_get_contents()`插入javascript

[英]PHP - Using `file_get_contents()` to insert javascript

我看到了一些相關的問題,但是沒有特定於此情況的問題。

這個問題是在Magento的背景下提出的,但絕不限於此。

我有一個<head>模板,除了head要做的其他事情之外,還包括各種Javascript文件。

出於一般原因,我有一個腳本希望包含在作者的CDN中。 不幸的是,作者沒有通過HTTPS提供可用的版本,這會導致用戶在加載此腳本時看到“不安全的內容”(並且取決於瀏覽器,無法運行代碼)。

我知道我可以將文件保存到我的本地域,該文件可以通過HTTPS進行訪問,但是正如我所說,我更喜歡從CDN中獲取此腳本。

作為解決方法,我使用了(在模板中):

<script type="text/javascript">
    <?php echo file_get_contents('http://path.to/the/file.js' ?>
</script>

這允許文件在沒有HTTPS版本的情況下生存,因為在解析PHP時會包含該文件,而不是在運行時將其作為單獨的資源加載到瀏覽器中。

假設我在模板中留下了解釋為什么使用此方法的注釋,那么通過這種方式可能會發現有什么重要的用途嗎?

這種方法有兩個缺點:

  • 用戶無法緩存Javascript(這會導致加載時間變慢)
  • 您使用額外的帶寬和額外的連接來從其他來源下載內容(再次加載時間變慢)。 如果這是一個高流量的網站,則對性能會有很大的影響。

假設您之所以要直接從CDN下載,是因為您始終想要一個更新的腳本。 您可以首先下載腳本的內容並將其放在服務器上。 每天進行一次cron作業,以從CDN重新下載腳本。 這將幫助您獲取更新的腳本並獲得更好的性能。

我不知道我們在這里談論的是哪種javascript文件。 如果它很流行,那么您可以選擇已經托管它的CDN。 如果您包含的是隨機JavaScript文件,則可以執行以下操作:

  1. 通過curl抓取JavaScript文件。
  2. 將抓取的javascript文件推送到您的個人CDN。
  3. 鏈接您的視圖文件,以指向CDN上托管的javascript文件。
  4. 設置CRON任務以檢查javascript源的更新。 如果找到,請重復過程1-2-3。

可能太多了,但這是一個選擇。

使用量的缺點之一是流量。 由於每次都會請求並投放JavaScript,因此您將同時使用入站流量和出站流量。 您應該對其進行緩存(這是使用CDN的原因之一)並從那里進行服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM