1
考慮下面的代碼工作的最有效的方法:保護的sprintf輸出的前導空格
for (i=0; i<nLinears; i++) {
for (j=0; j<nLinearPts[i]-1; j++) {
$wb.upLinearLoad.append('<div>' + sprintf("%5s%8.1f to%7.1f%8.1f"
,sLinearSegName[i][j],fLinearPtBA[i][j],fLinearPtBA[i][j+1],fLen)
.replace(/ /g," "));
}
}
這保證了當數由小(更前導空格)更改爲大(較少的前導空格)列間距將保持不變。然而,據我所知,使用.replace的正則表達式效率不高,因爲我在整個應用程序中都有這種結構,所以我需要儘可能快地運行它。我相信,jQuery .text()會照顧我的需要,但我也需要.append().text()結果,我不知道如何使它們一起工作。
任何建議將不勝感激。
您可以更新'sprintf()'函數以首先輸出非空白空格。但是,你真的發現使用正則表達式'.replace()'的性能問題嗎?我不認爲你會有問題。鑑於你似乎有表格數據,爲什麼不使用'
謝謝你找到失蹤的paren。爲了提出問題,我截斷了實際上長得多的陳述,並且意外地拿出了所需的副本。我在其他地方使用桌子來處理這個問題,但是我聽說他們也有很高的開銷。然而,我並不確定表格或正則表達式是一個真正的性能問題。後來我可能會嘗試一些事情來加速它,但目前我正試圖完成它,只是隨便試圖避免它太慢。我想我會快速瀏覽一下sprintf代碼。感謝您的評論。 – Terry 2011-12-28 02:12:54
我看着sprintf(),發現用填充字符插入替換' '的簡單單語句更改讓我獲得了我需要的東西。 – Terry 2011-12-29 01:22:17
回答
您可以更新
sprintf()
函數以首先輸出非中斷空格。但你真的發現使用正則表達式的性能問題
.replace()
?我不認爲你會有問題。鑑於你似乎有表格數據,爲什麼你不使用<table>
?這是表格的用途。來源
2011-12-29 02:18:30 nnnnnn
您可以用put these in
<pre>
elements反覆替換字符串替換
。這將(通常)使用固定寬度的字體格式化它們並保留空間而不需要額外的工作。
<pre>
適用於預先格式化的文本,這對您在此處的內容有意義。如果這不起作用,你需要替代品,你可以check out this question about how to use pre-formatted text in different contexts。
來源
2011-12-28 04:07:13
我看着的sprintf(),發現一個簡單的語句變化產生什麼,我需要:
我感謝的sprintf()實現使用有意義的變量名的作者。
來源
2011-12-29 06:16:11 Terry
相關問題