情况:
我正在使用$ .ajax()POST向php脚本发送请求,该脚本将大约400,000-500,000行插入到db中.这一直需要3.5到4分钟.(在此期间,请求是PENDING).
问题:
我需要一些方法来显示页面上的进度.(比如一个 %).我尝试在setInterval中使用$ .ajax(),每隔5秒左右检查一次,但是它们似乎会在第一个(更长的)$ .ajax()完成时生成.
问题:
默认情况下不是$ .ajax()async吗?这不应该意味着请求可以在任何时间以任何顺序发送,并且应该以任何顺序随时收到响应吗?这甚至与异步有什么关系吗?有没有办法定期从一个请求发回'半响应'?或者,当有待处理的请求/响应时,我是否无法发送和接收请求/响应?(见下面的精彩图纸)
提前致谢!!!
情况:
我的php/html页面每5-10分钟左右检索一个不同域的另一个页面的内容.我使用JavaScript setInterval()和jquery .load()将来自其他域的内容请求到我页面上的元素中.每次检索内容时,javascript都会将新内容与之前的内容进行比较,然后我对一个php脚本进行Ajax调用,该脚本会向我发送一封更改内容的电子邮件.
问题:
除了我需要一个不断打开的浏览器,请求更新之外,这一切都运行良好和花花公子.
问题:
有没有办法通过服务器上的某种"自执行"脚本来实现这一目的?我只需要启动一次,并且只要我希望脚本运行,它就会继续在它自己运行而不需要打开浏览器?
提前致谢!PS我无论如何都不是php/javascript专家,但我可以解决这个问题.
我有一个如下所示的 .txt 文件:
id,lat,lon,sequence,dist
98372,40.535257,-111.871612,1,0.0
98372,40.536023,-111.872235,2,0.1001
98372,40.535629,-111.872599,3,0.1335
98372,40.535499,-111.872559,4,0.1758
...etc
Run Code Online (Sandbox Code Playgroud)
这个文件有 863650 行长!(34MB)
我需要使用 MyISAM 引擎将每一行作为一行插入 MySQL 数据库中。(我假设这将是最快的)
我在 GoDaddy 的服务器上托管,因此我对 apache 和 mysql 配置没有太多控制权。
这是我目前所拥有的,它可以工作,除了需要大约 6 分钟以上并且服务器在 2 分钟后超时,因此它永远不会完成:
$raw = file_get_contents('file.txt');
$lines = explode("\r\n", $raw);
$tablename = 'tablename';
$tableHeaders = 'id,lat,lon,sequence,dist';
foreach($lines as $line) {
$line_values = explode(",", $line);
$sqlValues = "VALUES(";
foreach($line_values as $value) {
$sqlValues .= "'$value',";
}
$sqlValues = substr($sqlValues, 0, -1) . ")";
$sqlSyntax = "INSERT INTO $tablename ($tableHeaders) $sqlValues";
$mysqlcon->query($sqlSyntax);
}
Run Code Online (Sandbox Code Playgroud)
这个可以优化得更好吗?或者是否可以构建一个巨大的插入语句,例如:
"INSERT INTO …Run Code Online (Sandbox Code Playgroud)