Когда вы говорите $(document).ready(f)
, вы можете сказать, что движок сценария выполняет следующие действия:
$
и выбрать его, поскольку он не находится в локальной области, он должен выполнить поиск хеш-таблицы , который может иметь или не иметь коллизий. ready
выбранного объекта, который включает в себя другой поиск хеш-таблицы в выбранном объекте, чтобы найти метод и вызвать его. В лучшем случае это 2 хеш-таблицы, но это игнорирует тяжелую работу, выполняемую jQuery, где $
- кухонная раковина всех возможных входов в jQuery, поэтому другая карта, скорее всего, отправит запрос на исправление обработчика.
В качестве альтернативы вы можете сделать это: [/ g1 6]
window.onload = function() {...}
, который
onload
свойство или нет, выполнив поиск в хеш-таблице, поскольку он называется как функция. В лучшем случае это стоит один поиск таблицы хеш-таблицы, что необходимо, потому что onload
должен быть выбран.
В идеале, jQuery будет компилировать свои запросы к строкам, которые можно вставить для выполнения того, что вы хотите, чтобы jQuery выполнял, но без диспетчеризации jQuery во время выполнения. Таким образом, у вас есть опция либо
eval
. function subst($str, $dict){
return preg_replace(array_map(create_function('$a', 'return "/%\\($a\\)s/";'), array_keys($dict)), array_values($dict), $str);
}
Вы называете его как так:
echo subst('The %(site)s site %(adj)s because it %(adj)s', array('site'=>'Stackoverflow', 'adj'=>'rocks'));
Я не знаю, быстрее ли это, но можно сделать это без regexes:
function subst($str, $dict)
{
foreach ($dict AS $key, $value)
{
$str = str_replace($key, $value, $str);
}
return $str;
}
Некоторые внесенные пользователями примечания и функции в документации PHP для sprintf приближаются вполне.
Примечание: ищите страницу "sprintf2".