2012-06-07 55 views
1

如何構建一個頁面,訪問者可以在頁面上添加評論?我知道這是可能的一個分貝,問題是 - 我可以做到沒有分貝?也許通過在正確的位置(插入最後一條評論之後)將一個新元素保存到現有的.aspx文件中,我該怎麼做?如何構建評論頁面?

任何其他優雅的想法如何實現?

在這種情況下,我不使用數據庫的原因是爲了簡單和快速加載頁面 - 我的方法是否正確?

+2

你會發現簡單性和性能比使用數據庫要容易得多,而不是試圖修改內存中的靜態HTML文件。這種方法與簡單方法相同,將會變得更加困難並且不太穩定。 – David

+1

您可以通過在文本文件中插入註釋來處理streamwriter –

+1

所有I/O的開銷幾乎相同,文件或DB。但是,您可以輕鬆地維護數據庫。你還有什麼想法?文件,分佈式緩存,鍵/值內存? – Adil

回答

1

我還建議使用數據庫,我們需要多少時間才能爲小流量的網站創造低成本,簡單快速的服務。

所以這是我建議你。用File.AppendText將您的讚美附加到文件中,然後使用此命令將文件包含在您喜歡的地方以查看此評論。

<!--#include file="CommentsA.htm"--> 

不要在aspx文件中追加您的評論,因爲這可能會導致您的網站重新編譯。

正如我再說一遍,這是一個簡單的想法,爲快速和低成本的東西。您需要通過JavaScript注入和垃圾郵件來關注攻擊,因爲您有權批准/拒絕郵件。

這肯定是更快和最簡單的方式 - 但您無法控制評論。

+0

爲什麼追加註釋可能導致重新編譯該網站,是因爲服務器發現該文件已被修改,然後重新編譯?我如何照顧JavaScript注入? – BornToCode

+0

@BornToCode你做的評論Server.HtmlEncode,(不是你的格式標籤,只有用戶寫在它上面) – Aristos

+0

@BornToCode這種方式是不會導致任何重新編譯,只有當你附加在aspx文件。 – Aristos

1

不!

您需要將數據存儲在某處並在後面查詢它。你期望怎麼做?您最終需要某處存儲該信息,而db是最佳選擇。

+1

他正在尋找的選項最有可能包含頁面底部的一個表單,當您點擊提交時,streamwrite將獲取該數據並將其寫入HTML頁面的底部。這基本上是一個權衡,不必建立數據庫連接,並有更多的標記和更長的頁面加載。沒有數據庫的方式可能是「更高效」,如果只有幾個註釋,但它肯定會更容易,更好地將數據存儲在數據庫大量。格式化也變得更容易。 – Tony318

+0

@ Tony318 - 你是唯一瞭解我的人!我想我還不夠清楚.. 1.我的問題是我如何在HTML文件中找到更新的正確位置(我想添加新的div或li而不是頁面的底部,但在某處?在最後一個評論之後的中間右邊添加..?)。 2.爲什麼「大量分貝更好」我看不出有什麼區別?加載靜態HTML頁面總是會更好,我錯了嗎? – BornToCode

+1

@BornToCode:加載一個靜態文件可能會更快,是的。但隨着文件的增長,對文件的_writes_將變得越來越慢。另外,爲了找到寫入文件的正確位置,你將不得不解析文件。這也相對較慢。整個行業已經花費了時間和精力來優化關係數據庫。沒有冒犯,但我懷疑你會打敗。除了性能,你的方法將導致更多的代碼,更多的手動工作來調整它「恰到好處」和其他問題。 (併發性,從不良數據中恢復等) – David

0

的asp.net網站有很大的套教程從靜態頁面移動到數據驅動頁面:

您不妨往下走的路線,微軟describtes爲「網頁」,這是比較容易但更大的兄弟網絡形式和mvc框架的基本版本。

這裏是直接鏈接到數據教程「網頁」: http://www.asp.net/web-pages/tutorials/data

看着這些教程將幫助您descide這是最適合你的。

但你不妨看看:

http://www.asp.net/web-pages

http://www.asp.net/web-forms

http://www.asp.net/mvc

0

我還是建議使用一個數據庫,但是這是基本的思維過程,我有做你的辦法。我從來沒有這樣做,所以它只是理論而不是代碼,有人可能需要添加它。

創建一個你想要在你的aspx頁面上發表評論的div,你可以將這個div命名爲「comments」或其他東西。雖然只有評論進入這裏。你要做的是做一個通用的表單,可能有一個註釋的文本區域和一個提交按鈕。當按下提交按鈕時,它會觸發一個使用Streamwriter直接寫入文本文件的事件。你需要能夠遍歷文本文件的行,直到你打開你的div,然後它會將html寫入文本文件並保存。這意味着當您使用您的Streamwriter時,您將擁有所有代碼,用於格式化已存在的評論,並只抓取評論的用戶名和文本。

1

我可以做到沒有分貝?

你可以用你的腳引導你的車,這並不一定是個好主意。使用數據庫有很多好處,例如安全性,併發性和性能。你應該把這看作是爲工作選擇正確工具而不是重新發明輪子的機會。