2013-04-25 68 views
0

我正在構建一個從SQL數據庫動態加載的網站。爲此,我創建了一個處理所有AJAX和Post和Get請求的PHP文件(每個頁面都有幾個php include)。使用AJAX請求長PHP腳本

PHP還不是很長(250行),但最終可能會變得更長。 所有內容都包含在<?php **** ?>標籤中,並且清晰且有條不紊地由switchcase組成。所以我只需要每行幾行。

我的問題是:是否include請求負載/下載所有文件,或者只是相應的部分?改寫時,會假設10,000行長腳本減速瀏覽器,或者只是從服務器的響應時間?

我對這一切都有擔憂。

在此先感謝。

PS:這種統一sql請求的想法來自計算機工程師朋友,他始終堅持要求Multititer Architecture

+1

如果您關心的是性能,那麼請查看可用的免費緩存機制。我使用Wincache進行OPCache,文件緩存,會話緩存和用戶緩存。用戶緩存允許您使用'key => value'對緩存自定義輸出。因此,如果你有一些需要花費大量時間/ CPU的進程,那麼就考慮在任何時間範圍內緩存它的輸出,這樣你的服務器就不必在每次頁面加載時都做所有的計算。即使只使用Wincache/APC/Memcached進行OPCache也會加快應用程序的速度,因爲PHP文件不需要在每次加載時轉換爲位代碼。 – Jasper 2013-04-25 15:36:22

回答

2

當你include一個文件,整個文件的內容被插入/執行到該腳本的那一點。根據包含的內容,如果包含響應不必要的文件,則可能會減慢響應速度。

http://us3.php.net/manual/en/function.include.php

+0

是的,但它只包含在一系列開關情況下,所以只有一小部分代碼實際執行。 正如Jasper所說,在每次請求時避免將PHP轉換爲位是非常好的... 但是由於所有的php本身都是腳本'',而且它是服務器端,它是否真的'插入'瀏覽器?所以我只需要檢查很長一段時間的服務器響應,而不是瀏覽器的效率。是對的嗎? 非常感謝您的回答 – Nico 2013-04-25 17:07:15

+1

php沒有插入瀏覽器,瀏覽器只能看到php生成的html。 對於你的第二個問題,是的。你會想要觀察長時間的服務器響應。 – Schleis 2013-04-25 17:31:54

0

我有一個很好的解決方案! (這是我自己的問題)

而不是o解析變量$option輸入switch case case case .... case case endswitch我想我可以將PHP分成許多不同的PHP,並將它們的名稱與其相應的大小寫分開。

因此,我將使用<?php include('some_folder/'.$option.'.php');?>而不是使用case('sports'),這樣可以避免每次調用時都將整個文件轉換爲二進制文件。

由於PHP在服務器上處理,所包含的文件將一直出現,它只需要處理20行代碼而不是400(最終還有更多)。

明確地說,謝謝