2010-10-28 185 views
0

我有疑問。每當我加載頁面時,我需要從服務器獲取數據兩次,一次是渲染HTML,另一次是爲客戶端(javascript)獲取數據。從數據庫中獲取數據的最佳方式

所以我不知道這是最好的方式和最快的。我試圖實現一個會話對象,並使用joinedload加載技術一次存儲數據。當數據在客戶端時,殺死會話對象。

另一個是調用數據庫兩次。

我不知道哪一個更快更好,因爲我不知道數據庫或服務器是否將第一個調用存儲在內存中。如果是這樣,它不喜歡調用數據庫兩次,對嗎?

如果第二種選擇更好,哪種加載技術(連接的加載,預載或子查詢)更好用。

每個調用都可能是一堆數據。

任何幫助可能是非常有用的。

在此先感謝!

+0

目前還不清楚問題是什麼,也許你可以重新解釋它。另外,你確定你有性能問題嗎?正如他們所說,不成熟的優化是一切罪惡的根源。 – 2010-10-28 23:57:20

回答

1

我不確定你問過的所有東西,所以我會嘗試2種不同的場景。

  • 如果你需要顯示所需的JavaScript的HTML和數據的數據是相同 - 你這樣做是非常錯誤。所有你需要做的就是僅僅爲html查詢數據庫,然後在隱藏字段中構造javascript所需的數據,然後在客戶端使用javascript查詢html的隱藏字段並使用數據。
  • 如果數據集不同,您可能需要之後客戶端的ajax請求顯示html。也就是說,一個額外的http請求。我說你在第一次調用之後關閉數據庫連接,然後再次使用下一個http請求重新打開。每個http請求都是獨立的,你需要注意在單個請求中打開/關閉連接。 [也就是說,如果你不使用池化,但這是另一個問題]
+0

是的,我同意。我沒有想過這樣做,但我已經找到了這種方法。 – bribon 2010-11-16 21:00:21

相關問題