2011-10-30 82 views
1

我有一個網站的評論;每個評論可以是可變長度的。更長的評論自然佔用更多的空間。但是,我只在頁面上留下有限的空間來放置這些評論。估計服務器上的客戶端字體渲染大小?

當然,從堆棧中選擇固定數量的評論是行不通的,因爲它們可能是簡短的1行或50行的散文。將整個列表發送給客戶端,讓客戶端JavaScript在渲染後將其裁剪到合適的長度,看起來絕望浪費。計數字符不起作用,因爲「iii」佔用的空間比「MMM」少得多

我想要的是某種方法來計算每個評論的高度,因爲它的內容,字體,字體大小和重量。即使它不完美,我也可以讓服務器發送20%的太多評論,並讓客戶端的javascript減少,這至少會將我的浪費限制在一小部分評論中。

我正在使用Python,並且正在考慮讓Python圖像庫呈現服務器上的註釋文本並查看最終圖像的高/寬。首先,有沒有這樣做的「標準」方式?

編輯:我也可以呈現每個字符,並保持字符,字體,重量,大小 - >寬度,高度在服務器上的映射,因爲我不涉及字距或其他字符間關係。

+0

您是否考慮過使用CSS格式化每個評論:'overflow-y:auto;'(同時指定一個高度),以便它們不會拉伸長評論並破壞佈局,但會在必要時顯示滾動條,用戶仍然可以閱讀所有長的評論。 – nnnnnn

+0

@nnnnnn:我寧願不這樣做;我認爲滾動條很醜(至少微軟的窗口滾動條很醜),並且違背了網站的視覺設計。我可以滾動每個評論,或滾動評論的整個列表,但理想是我不滾動=) –

回答

1

你應該記住大數的規律。沒有太多的文章是由字母i或m組成的。首先嚐試一些真實的評論文字,字符計數可能會比你預期的更好。而且它比使用PIL來渲染文本服務器端快得多。

+0

我可能會嘗試這樣做,以及我提到的逐字符數字方法,但我是希望有一些規範的做法。 –

相關問題