2012-02-26 62 views
1

我知道當客戶端發出請求時,庫和基類&控制器會被加載。codeigniter中的基類是否爲每個請求重新加載?

例如:

  1. 用戶訪問example.com
  2. 的index.php執行和負載類/庫實例
  3. 實例分配給基地控制器(超類)
  4. 局部控制器(默認)被調用,然後使用可用資源加載視圖。

現在,因爲HTTP是無狀態的 - 這是否意味着如果用戶單擊,比如按鈕,所有對象都必須重新加載?如果是這樣,這對性能有什麼影響?

謝謝!

+1

這就是HTTP + PHP的工作原理。每個請求都會啓動一切。 – hakre 2012-02-26 19:04:00

+0

是的,它每次加載庫和基類。但是,您可以通過單獨加載而不是自動加載來削減所需的加載。您可以根據配置文件中的要求更改所有配置。 – insomiac 2012-02-26 20:38:49

+0

是的,每個請求都重複同一個循環。 – Broncha 2012-02-27 05:10:06

回答

3

這取決於按鈕是否發送另一個HTTP請求。是的,每個自動加載庫都將在每次請求時「重新加載」。這比其他任何東西都更適合PHP(nodejs或基於java的服務器不是這樣)。

如果您盲目地爲每個請求加載每個庫 - 是的,這會對性能產生負面影響。如果您將它們加載到需要它們的控制器操作中,則會更好。如果它成爲一個大問題,你可能會考慮緩存數據庫中的一些對象或memcached(首選)。在此之前,盡一切可能來發展。

優化您的時間是您在早期階段獲得的最佳性能提升。

相關問題