2017-08-29 95 views
1

我已搜查以下,似乎沒有人埃文詢問,所以我想有一些捂臉啞一下: 在PHP文件包含獲取本地js的Kosher?

... php code 
    ?><script type="text/javascript> <?php include js/filename.js ?></script> 
<?php 
... php code 
+0

這樣做沒有意義。如果您想使用PHP創建JavaScript,只需在HTML腳本標記src中使用'.php'文件擴展名,然後在'.php'頁面上編寫創建PHP的JavaScript。 – PHPglue

+0

實際上,正如Brad在下面提到的那樣,我試圖避免再往返一次,以獲取由該頁面單獨使用的少量JS膠水功能。 根據其他地方的建議,我可以將JS直接粘貼到頁面中。 我的假設,在我的主持人的情況下似乎是真實的,在主機上讀取文件的延遲遠小於運輸等待時間。 感謝您的輸入。 –

回答

0

看來你想要做的是什麼捆綁你的JS到你的HTML輸出中。實際上有幾個用例,但它們並不經常出現。例如,我有一個Web應用程序可以加載沒有緩存的遊戲控制檯。作爲一個微型優化,我只是將所有腳本和CSS綁定到HTML中以減少HTTP請求的數量。

一般來說,雖然這有一些缺點。假設您想在多個頁面上使用相同的JavaScript。如果腳本可能已經加載到頁面A上,然後緩存,然後立即可用於頁面B,那麼現在必須再次爲頁面B加載整個內容。另外,請不要忘記代理服務器可以很好地緩存靜態資源。如果您要動態創建頁面,那麼即使JavaScript可能會被緩存,也可能不會被緩存。

現在,在捆綁技術...你在做什麼是facepalm的確。通過使用include(),你告訴PHP執行該文件的內容,就好像它是PHP一樣。這不是一個PHP文件(我假設無論如何),那就是JavaScript。這是不太可能的,但如果<?php最終會在那個文件中出現,那麼您將最終執行您不打算執行服務器端的代碼。更糟糕的是,您正在通過讓PHP查找其令牌來浪費CPU。 readfile()是你想要的,而不是通過該文件的內容。

其他要注意的事情是逃避等。您現在在HTML上下文中使用純JS文件。需要小心。

最好使用現有的打包工具。我目前沒有任何具體的建議......我還沒有找到一個我特別喜歡的PHP。

+0

感謝您的輸入,尤其是讀取文件。 –

+0

錯過了編輯窗口: 感謝您的輸入,尤其是讀取文件。 事實上,我第一次在瀏覽器中包含(本地生成的)js文件時(並且bloci = king其他內容)有一些延遲。此後,我將其他大部分內容都轉移到了CDN。 在「查看源代碼」中公開我內部例程的缺點 關於(可能不太可能,特別是對於我寫的文件而言)可能性不大,因爲js文件中有一個<?php。 –