У меня есть веб-приложение, использующее тонких клиентов (терминалы bosanova) в качестве внешнего интерфейса для пользователей. Я заметил некоторые различия в производительности в JavaScript между тонким клиентом и ПК. Терминалы работают под управлением Windows XP, встроенной в IE6, а на страницах, на которые я ссылаюсь, используется прототип JS Framework для довольно простой проверки элементов формы.
Например, вот что я использую, чтобы убедиться, что обязательные поля заполнены.
Есть еще два варианта для .numeric и .alaphanumeric, которые тестируют соответственно и выдвигают ошибки, чтобы остановить отправку формы.
$$( '.requiredfield' ).each( function ( elem ){
if ( ( $( elem ).value.length == 0 ) || ( $( elem ).value == null ) ) {
$( elem ).addClassName( "nonvalid" );
$( elem ).siblings().first().addClassName( "error" );
requiredErrors.push( $( elem ) );
}
});
Проблема, с которой я сталкиваюсь, - это ПК в Firefox или IE, для формы с 5-20 полями на странице может потребоваться полсекунды для обработки дольше, чем без проверки. В Терминале, однако, выполнение проверки занимает от 15 до 25 секунд дольше, чем на той же странице без нее. Как я уже говорил, я проверял это в IE6 на ПК и не вижу потери производительности. Звонок Босановой привел меня к обновлению памяти в терминале, что я и сделал перед этой публикацией, и результаты не изменились.
Я могу изменить скрипт, так что я перебираю поля формы только один раз и обрабатываю .required .numeric .alphanumeric, и я уверен, что это поможет. Как сейчас, между ПК и терминалом (тонким клиентом) такая разница в производительности. Мне любопытно узнать почему.
Если у кого-то есть опыт устранения неполадок или он знает, почему прототип / javascript понесет такую потерю производительности на терминале, я был бы очень признателен за некоторые советы.
Обновление: >>>>>>>>>>>>>>>>>
Я все еще тестировал и изучал эту проблему и думал, что поделюсь этим. Вчера мы получили более новый Терминал, который я загрузил и протестировал. Новый терминал с IE6 работал безупречно, как и любой другой браузер. Конечно, он был немного медленнее, чем ПК, потому что: 1. на нем запущен IE6, а 2. - тонкий клиент, но разница в скорости составляла сотни секунд, а разница в 10–50 секунд - при тех же сценариях. Физические характеристики двух разных тонких клиентов не такие уж и разные: 1,2 ГГц (старая) и 1,6 ГГц (новая) память были одинаковыми, а HD / DOM был 512 МБ (старый) против 1 ГБ (новый). До сих пор не удалось точно определить, что происходит в старом терминале, но похоже, что он связан с этой конкретной моделью / ревизией терминала.
Обновление: >>>>>>>>>>>>>>>>>