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()', чтобы в первую очередь выводить неразрывные пробелы. Но вы действительно нашли проблему с использованием regex '.replace()'? Я не думаю, что у вас будет проблема. Учитывая, что у вас есть табличные данные, почему бы вам не использовать '
Спасибо, что поймал пропавший парен. Я урезал фактическое гораздо более длинное заявление с целью задать вопрос и случайно достал необходимый парн. Я использую таблицы в других местах, чтобы позаботиться о проблеме, но я слышал, что они тоже несут высокие накладные расходы. Тем не менее, я вовсе не уверен, что таблицы или регулярное выражение - настоящая проблема с производительностью. Позже я, вероятно, попробую несколько вещей, чтобы ускорить его, но на данный момент я пытаюсь это сделать и лишь случайно стараюсь не спешить с ним. Я думаю, что я быстро взгляну на код sprintf. Спасибо за комментарий. – Terry
Я посмотрел на sprintf() и обнаружил, что простое однозаказательное изменение на замену « » для ввода символа колодки достало мне то, что мне было нужно. – Terry
ответ
Вы можете обновить функцию
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
Смежные вопросы