2011-10-27 34 views
0

我有一個網站,其中包含許多新聞文章。在數據庫中,每篇文章都有用戶看到的與文章一起顯示的所謂「標籤」。當用戶點擊標籤時,它們被定向到其他包含該標籤的文章列表。標籤頁...會話變量或許多靜態頁面?

我應該爲每個新創建的標籤生成一個不同的HTML頁面,還是應該創建一個單一頁面並根據用戶使用會話變量點擊的標籤來改變內容?

明顯,頁面不會完全靜態的,因爲我會更新他們每次具有匹配標籤的新文章被上傳

+0

我可以協調這兩種方法可能工作...我想知道哪一個更容易... – Timtam

回答

1

你當然不應該使用會話數據。這是針對需要持續存在的數據,但它是針對每個用戶設置的。將它用於每個請求數據只會打破書籤並引入競爭條件。

您應該爲每個標籤都使用不同的URI。如果您使用動態生成的內容(通過查詢字符串或解析服務器端代碼中的URI(大多數框架,例如Dancer將爲您處理此問題)),或者如果使用動態生成的內容(從最終用戶的角度來看)你使用生成的靜態頁面。

靜態頁面使處理高速緩存變得更容易,並在高流量系統上提供更好的性能,但如果內容發生變化,往往需要重建大部分網站。使用服務器端緩存可以獲得類似的性能改進(例如,通過memcached)。

動態頁面通常更容易實現。

+0

這意味着我將不得不每次引入新標籤時自動生成一個新的html頁面...我不知道該怎麼做......任何提示? – Timtam

+0

數據庫中有一張標籤表,以及將標籤映射到文章的多對多橋接表。然後,只需循環使用通過網橋加入的文章列表(每個文件都按照您的要求排序),然後循環使用標籤併爲每個標籤生成一個頁面。如果您正在處理靜態文件,請將其輸出到文件中。如果您正在動態工作,那麼請在標籤索引頁面被請求時生成(如果標籤不在數據庫中,則生成404)。 – Quentin

+0

或者...使用實現標籤的現有CMS,而不是從頭構建自己的標籤。 – Quentin

0

我建議你創建一個包含標題,幷包含所有物品的小描述的列表頁面一個類似於WordPress的特殊標籤。

例如,這裏是標記jQuery列表頁面:

+0

這是個好主意......我只關心這些標籤頁的創建,因爲我將擁有一個非常大量的標籤... – Timtam

+0

@Timtam:是的,你應該在類似的時尚中創建一個列表頁面,它會更容易,沒有太多開銷:) – Sarfraz

0

我想創建一個網頁,然後重寫URL,以便它引用的標籤頁,因此像這樣

Tag element == New 

tagpage.aspx 

http://www.yourwebsite.com/New.aspx 

這可以讓你有一個頁面來更新內容,但允許每個頁面被Google.com索引。

我不知道你用的是什麼語言,但我會擡頭URL重寫

這裏有一個鏈接,在Apache的重寫: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

這裏有一個鏈接,在asp.net重寫: http://msdn.microsoft.com/en-us/library/ms972974.aspx

+0

你可以在php中做到這一點嗎? – Timtam

+0

@Timtam是的,但我沒有任何經驗,所以你將不得不做一些研究,這裏有一個快速鏈接到使用.htaccess基於正則表達式重寫您的網址等頁面。http:// corz。組織/ SERV /技巧/ htaccess2.php – CBRRacer