2013-12-15 54 views
0

是更好地做這樣的事情:PHP文件加載與HTML與AJAX?

//PHP FILE: 
<html> 
    <body> 
    hi 
    <?php 
     //load first 50 comments from mysql 
    ?> 
    </body> 
</html> 

或者這樣:

//HTML FILE 
<html> 
    <body> 
    hi 
    <div id="hello"> 
    </body> 
</html> 

//JS file: 
$(document).load(function() { //or whatever it is if not 'load', I can figure it out 
    $.ajax(/*php call, receive JSON of the mysql data*/); 
}); 

我要找的速度和空間效率。哪個更好 - 讓PHP文件發送整個HTML文件,還是讓HTML文件以JSON格式發送數據?

在此先感謝。

+0

衡量它。充其量,你可以得到自以爲是的答案。速度和效率 - 範圍太廣泛。 –

回答

3

我認爲你的問題對於SO來說太普通了,但這裏是我的兩分錢。

如果檢索評論列表是您在此頁面上唯一要做的事情,那麼一定要選擇第一個選項。你會有一個更少的要求,這是你應該保持的時間。 但是,只要您需要一些實時操作,可以使用update,create,delete,您可以很容易地看到這些請求應該只會讓您回到新數據,而不是所有附近的和未安裝的數據沒有被修改過。 每次調用某個操作時,都可以在刷新頁面和刷新其內容的一部分之間進行選擇。

所以,我覺得它是這樣的:

  • 如果你要顯示的快一些數據需要,順應了第一個選項。內容將與頁面一起顯示。
  • 只要您需要執行僅影響頁面一小部分的操作,您爲什麼還要再次檢索整個頁面?最快的選擇將是一個AJAX調用。

因此,混合兩種,併爲每種情況,採取最適合您的需求。

要匹配你的榜樣

我這樣做:

echo與您的網頁評論的完整列表。 現在顯示列表,就像你需要的一樣。

但AJAX調用將是最適合的:

  • 添加一個新評論
  • 更新現有
  • 檢索新的評論
  • 刪除現有之一。

刪除通常是一個很好的例子。如果用戶刪除評論,您可以立即隱藏它,並隨時發送請求。所以它實際上會被用戶看作real-time,比你能做的任何事都快。

P.S. :在我最近的應用程序中,我使用AngularJS,實際上我會去AJAX請求一切。但有一個很好的理由:有了這個機制,我可以使用緩存,因爲我的HTML頁面的內容是static
靜態頁面的發送速度會更快,然後內容將被加載到正確的位置。但是這個選擇需要基準。
另外,重要的一點是,如果你走這條路,你必須認識到抓取機器人(如GoogleBot)將無法加載你的內容。

+1

基本上會指出你剛剛說的同樣的事情。 +1 – Jonast92

0

讓php爲你迴應它。這兩種方法本質上都是通過ajax來實現第二步的。

0

不知何故,我認爲使用直接的PHP和MySQL比jquery,json,mysql和ajax更快更簡單。但我不認爲這些天的速度差異將是顯而易見的...

最好選擇任何系統最適合您的應用程序和編碼風格。

0

嗯,一般來說,第二種方法的速度會變慢。因爲它會再做一個HTTP查詢。如果你的數據庫不大,那麼使用簡單的PHP腳本