最近我真的很喜欢用 Meteor 进行实验,到目前为止,我发现它是一个非常简洁的小应用程序。我决定将一个旧应用程序迁移到流星上,并且已经取得了一些不错的进展。该应用程序是实时比分更新应用程序。虽然我已经能够展示这个概念,但我发现了 2 个可能阻止我使用它的问题。
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 是 - 为测试此应用程序的可扩展性做了多少工作?
2)我遇到的第二个问题是关于移动性能。我花了很长时间让样式表在所有平台上看起来都很好,并且看到移动设备上的电池电量耗尽的速度真的很失望。
当我在 Safari 中加载页面时,右上角的“进度”动画一直在旋转,据我所知,5% 的电池电量可能会在 10 分钟内耗尽。
问题 2 - 如何使浏览器的连接保持活动状态?有什么办法可以减少对移动浏览器的影响?
谢谢。