2011-08-28 64 views
0

我在解決在我正在構建的應用程序中加載其他數據的方法時遇到了一些困難。該應用程序是一個CMS,其中一個頁面由許多片段組成 - 其中一些是可重用的,其他是獨佔的。Ajax - 用於加載第三方數據的最佳實踐/方法

的獨家片段的一個例子可能是一個描述/作者meta標籤,而可重複使用的片段可能是一個鏈接列表。

我目前的做法是加載構成頁面大部分的重要數據,例如,主體內容,標題,slu,,日期(發佈/到期/修改)。在部分被加載並且UI準備好之後,我加載2個額外的數據集:一組元標記;碎片集合。

我的賦予是: 1.可擴展性 2.速度 3.可維護性

是我的做法的聲音,或者我應該考慮的另一種方法?

回答

2

我假設你正在使用上面提到的延遲加載AJAX。

您的方法是否正確? 您的問題的答案取決於整個頁面加載的速度(包括片段)。你的技術被用來當我們要創建的頁面的感知被加載,使用戶在心理上不喜歡等待,

,當整個頁面被認爲太長加載技術被使用。由於「加載太久」的措施是主觀的,我們以8秒爲例。如果整個頁面需要8秒加載,而部分頁面(例如主體等)需要3秒鐘,那麼首先加載這些部分是明智的,因此用戶在心理上不會等待8秒鐘。

至於你的3個標準:

  • 可擴展性:延遲加載會增加HTTP調用的次數總共調用了服務器的數量方面回服務器,從而引入額外的負載以及佔用併發連接數的可能性。因此,延遲加載會給服務器帶來額外的開銷。但是,如果您的部署環境是正確集羣的,那麼它不應該對您造成任何主要問題。

  • 速度: 這是回到了我以前說過。如果你的整個頁面加載速度非常快,那麼由於你正在對服務器進行額外的HTTP調用,因此執行片段的延遲加載實際上可能會減慢它(總秒數)。在這種情況下,你也不會幫助用戶感知。但是,如果加載整個頁面的速度很長,那麼該技術是有意義的,因爲它可以提高用戶對速度的感知,甚至速度加載的總時間可能更長。

  • 可維護性:一個很好的實現將使加載整個頁面之間通過一些簡單的代碼段來選擇。這將意味着你已經編寫了可維護和靈活的代碼。

+0

哇,謝謝你的好迴應 - 我的確在使用AJAX進行延遲加載。因爲它代表我加載的特定屏幕在1.3秒內呈現,包括額外的數據(Ajax請求)。我將使用它作爲中期開發基準,直到我可以看到它在共享主機/生產服務器上的執行情況。感謝您的洞察力! – user916011