Че, я сделал кучу тестов и профилирования, чтобы определить, какой бит кода занимает время. jeditable был не единственным виновником, но он взял львиную долю. Мне действительно любопытно, почему это работает быстро для вас, а не для меня.
Одна из возможностей заключается в том, что я запускаю IE на XP в виртуальной машине VirtualBox на моем iMac. Это не быстрая настройка, но это хорошо, потому что некоторые из моих клиентов используют старые, медленные или перегруженные компьютеры, и я хочу, чтобы приложение также хорошо работало на них.
В любом случае, хорошая новость заключается в том, что я нашел простое и эффективное решение, которым я могу поделиться. Я избавился от всех вызовов .jeditable () в $ (document) .ready (). Я дал каждому редактируемому элементу span в таблице атрибут примерно так: onclick = "ed (this)". И вы можете представить, как выглядит ed ():
function ed(elem) {
$elem = $(elem);
...
$elem
.removeAttr('onclick')
.editable('action_script.php', {
...
}
})
.click();
}
Теперь давайте подумаем об этом. В любом случае, это, пожалуй, правильный подход, потому что почти все редактируемые элементы в таблице не будут редактироваться до перезагрузки страницы (по крайней мере, в моем случае это так). Настройка всех этих элементов как редактируемых на тот случай, если на них можно нажать, довольно неэффективно по сравнению с тем, чтобы сделать их редактируемыми, только если на них нажали.