2014-03-18 41 views
0

我爲一些朋友建立了一個自定義論壇,而且它急需重寫。就像現在一樣,它從MySQL數據庫中獲取帖子的數據,然後在頁面加載時將數據混合到html中。加載自定義論壇帖子:PHP回聲與javascript.createElement

簡單的例子:

if ($inArray == true) 
    echo '<div class="other">'.$reply.'</div>'; 

這似乎真的很亂我,所以我打算用javascript元素添加到DOM重寫它。儘管如此,我認爲它越多,使用javascript似乎就會慢得多。

我的問題:

  1. 會動態地添加元素通過JavaScript DOM是 明顯比PHP回聲慢一個小論壇?
  2. 如果是這樣,是否有一個更清潔的方式來做到這一點與PHP?
  3. 更一般地說,是否有加載類似這樣的論壇帖子的最佳做法?

可能值得注意的是,我目前有一些代碼可以通過AJAX加載新帖子,並計劃保留此功能,因此一個可行的解決方案將對自動更新友好。

一如既往,我感謝您的幫助!

謝謝

+0

聽起來你可能想要使用AJAX。您可以在頁面初始加載時加載一定數量的帖子,然後使用AJAX在滾動或單擊按鈕時加載另一堆帖子。 – Jrod

+0

創建元素的速度相當快,因此如果速度較慢,您必須生成大量標籤。就我個人而言,我不會爲此使用JavaScript,我會將其保留在服務器端。我也看不出示例方法是如何「混亂」的。唯一的其他「更清潔」方式是使用'printf()':'printf('

%s
',$ reply);'。 – SparoHawk

回答

0

DOM是緩慢的,並添加到它與JavaScript是費時。我目前正在運行一個網站,它基於使用ajax提取信息,爲數據創建模板並填充數據。除非我在一個函數中繪製到DOM,否則我沒有注意到很多速度減慢。

如果您使用$ .html(),您希望儘量減少使用它的次數。 例如,(在一個循環等)動態地建立一個列表,你可以添加所有

<li>Dynamic List Item</li> 

一個變種,然後繪製以.html $(),以減少繪製調用。

我建議長時間輪詢你的ajax請求,檢查更新,並根據需要通過更新數據來繪製/更新,或者清除已更改的數據並再次繪製它們。