Мне очень понравилось экспериментировать с Метером в последнее время, и до сих пор я нашел его очень аккуратным маленьким приложением. Я решил перенести старое приложение на метеорит и уже сделал хороший прогресс. Приложение представляет собой приложение для обновления итоговых показателей. Хотя мне удалось продемонстрировать концепцию, я обнаружил 2 проблемы, которые могут помешать мне использовать ее.Масштабируемость и производительность в Meteor
1) Данные, ранее существовавшие в базе данных mySQL, поэтому я написал сценарий для экспорта данных в .js-файлы. Для тех, кто может захотеть сделать подобное, основная часть кода PHP находится здесь.
$handle = fopen($output_file, "w");
foreach ($tables as $key => $table) {
$query = "SELECT * FROM $table_prefix$table";
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res)) {
$newTableName = "";
$parts = explode("_", $table);
foreach ($parts as $k => $v) {
$newTableName .= ucfirst($v);
}
$string = $newTableName.".insert({";
$first = true;
foreach ($row as $columnName => $value) {
if (!$first) { $string .= ", "; }
$string .= "$columnName : \"$value\"";
$first = false;
}
$string .= " });";
print $string . "<br>";
}
}
Хотя это работало для большинства таблиц, у меня есть одна таблица, в частности содержащая всю информацию о событии. Этот отдельный .js-файл содержит 3600 строк операторов вставки, и казалось бы, когда это приложение, приложение прерывается. Если я переименую файл, например, «event.js.save», то приложение будет в порядке. Более конкретно, этот .js файл на месте, когда я развернуть приложение я получаю ..
mac:app user$ meteor deploy <domain>.meteor.com
Deploying to <domain>.meteor.com. Bundling ...
Errors prevented deploying:
Exception while bundling application:
RangeError: Maximum call stack size exceeded
Итак, вопрос номер 1 - как много было сделано, чтобы проверить масштабируемость этого Appliction?
2) Вторая проблема, которую я имею, касается производительности мобильных устройств. Я потратил много времени на то, чтобы таблица стилей выглядела неплохо на всех платформах и была очень разочарована, увидев, как быстро батарея на мобильном устройстве идет вниз.
Когда я загружаю страницу в Safari, анимация «progress» в правом верхнем углу постоянно вращается, и из того, что я видел, 5% батареи проходит, вероятно, 10 минут.
Вопрос номер 2 - как поддерживается соединение браузерами? Есть ли что-то, что можно сделать для снижения воздействия на мобильные браузеры?
Спасибо.
Вращение фактически работает так же, как и в браузере. Это вызвано AJAX: AJAX означает, что что-то загружается, если что-то загружает колеса вращений:) –
Приветствия для резервного копирования ниже :), да, не знаю, я хочу, чтобы вращающееся колесо, когда AJAX загружается лично. – jonathanKingston
Благодарим за обновление. Я смог решить ситуацию сейчас, слегка изменив свой код, как вы предложили. Я отправил ответ ниже с обновленным кодом и комментариями к №2. Благодарю. – afeltham