我正在構建一個web應用程序,我爲測試目的而開始應用程序的方式是從我的數據庫中將大量數據加載到會話數組中,以便我可以輕鬆使用這些值整個頁面。我有一頁上有很多選擇,每次php頁面遍歷所有變量,選擇所選的一個,並輸出下拉。我的一個數組雖然剛好低於3000個值,並且加載此下拉菜單會將頁面從大約300ms降低到1-1.2s。並不可怕,但很容易判斷它的響應性較差。所以我想知道是否有提高加載速度的方法,或者有關替代下拉的任何想法。大選擇減慢頁面加載 - 緩存php
我迄今爲止嘗試:
屆陣列存儲所有的值,當頁面通過jQuery的AJAX方法加載PHP頁面遍歷這些值和回聲的下拉菜單。
PHP包括 - 創建php或html頁面的所有值預寫爲選擇,這將創建一個約100kb頁面的問題下拉列表,然後包含在
include
。大致相同的數額加上我不得不使用JavaScript來設置值,但我會做這個,如果它可以得到改善。我想也許有些緩存可以在這裏提供改進。包含html和php頁面似乎沒有顯着差異,但我認爲html會更好。我還假設我不能使用常規緩存,因爲我使用php函數來包含這些頁面。我試過在html頁面中加載,第一次加載需要大約1秒,瀏覽器緩存後會回落到100-350ms,所以我想緩存可以提供巨大的性能提升。
我已經考慮:
創建整個頁面的緩存版本,但這將是非常痛苦落實所以我只能做它,如果人們認爲這是正確的方式去與此。我將不得不使用ajax來檢索一些數據,這些數據是我最初使用php回聲做的輸入。
只是刪除問題下拉菜單。
我想弄清楚的東西我從來沒有澄清,我在想PHP頁面永遠不能憑藉它的瀏覽器緩存改正,因此通過擴展包含任何PHP文件也不容。但是,如何在PHP文件中鏈接到一個JavaScript文件可以被緩存,因爲它使用的是一種html方法?
無法緩存PHP代碼,但生成的HTML可以。這就是爲什麼你提到的JavaScript被緩存。 –
@AdamCulp但是,從PHP產生的HTML包括緩存能夠呢? – mrmryb
不是真的,因爲PHP每次都會重新渲染它,除非您有一個optcode緩存,正如我在下面的答案中所述。這可能有幫助。 –