加載新頁面時/需要我有一個具有包含頁眉/導航欄/頁腳,然後內容的主頁網站是AJAXd到一個div:<div id="content" class="page-content"></div>
保持PHP包括通過AJAX
是否可以動態加載一個頁面使用AJAX進入內容div,保持當前頁面變量在PHP中?
這樣我就不必在每個頁面上編寫require和includes,並且還應該提高加載性能。
加載新頁面時/需要我有一個具有包含頁眉/導航欄/頁腳,然後內容的主頁網站是AJAXd到一個div:<div id="content" class="page-content"></div>
保持PHP包括通過AJAX
是否可以動態加載一個頁面使用AJAX進入內容div,保持當前頁面變量在PHP中?
這樣我就不必在每個頁面上編寫require和includes,並且還應該提高加載性能。
在典型的Web請求/響應範例中,對頁面的每個請求都與其他頁面無關。 這意味着如果您對第一頁和第二頁進行請求,則兩個處理的請求不會共享任何信息或狀態。這就是我們稱之爲「無狀態」的這種客戶端/服務器通信的原因。 當然,我們可以在這種通信的基礎上建立一個「有狀態」系統,包括會話數據或數據庫,但這是不言而喻的。
以類似的方式,在您建議的結構中,您將有第一個請求來加載容器頁面,第二個或多個加載要注入第一個內容的內容。 這些將是分離的調用,彼此隔離,無法共享任何變量或所需的腳本。
但這不是問題。這不是一個很大的開銷。 還有另一個原因,你不想重複代碼:保持乾燥的事情(不要重複自己)。這是因爲您不想保留類似但重複的代碼,每次更新都需要在程序的不同部分重複。
在你最終的情況下,你最終會得到一個腳本,它將完成你的頁面所需的所有常見工作。 容器頁面和內容頁面都需要這個通用腳本。
因此,您只需編寫一次所需的代碼,但它會針對每個請求執行。
因此,一個很好的方法是創建一個大的實用程序文件或包含我需要的所有東西的文件,並將它們包含在每個頁面中?聽起來不錯。謝謝。 – MattJeanes 2014-10-07 12:03:42
不客氣。根據項目的複雜程度,您應該考慮是否需要單個文件進行引導或更加結構化。對於更復雜的項目,您可以轉向微框架或完整的框架。最後一個框架是通常智慧已經發現的解決常見問題的模式和方法的集合。 – Giovanni 2014-10-07 19:06:33
難道你不能只是回聲包括作爲ajax的一部分? – Phlume 2014-10-06 18:38:20
http://api.jquery.com/load/ – dbndhjefj 2014-10-06 18:43:55
你可以試試:http://php.net/manual/en/language.oop5.autoload.php(最佳實踐),或者你可以創建一個標題與您的要求幷包含在其中並在你的網頁和你的AJAX頁面中使用它,但是你要求的答案實際上是NO。對服務器的AJAX調用處理PHP頁面並僅返回輸出 - 無法將其作爲PHP代碼使用,並允許其訪問已加載頁面上的信息。但是,您可以加載需要在會話中共享的數據,然後AJAX頁面可以在加載之前訪問它。 – Mark 2014-10-06 18:45:03