gpt4 book ai didi

javascript - 如何使用 PHP/JavaScript 从客户端停止 SQL 查询执行?

转载 作者:行者123 更新时间:2023-11-28 07:00:33 25 4
gpt4 key购买 nike

我找到了this answer但它已经很旧了,我不确定反复 ping 客户端是最好的方法。

我有一个带有按钮 START 的 HTML 页面,该按钮对另一个 PHP 脚本执行 AJAX 调用,该脚本本身执行大量 SQL 查询。完成此操作后,结果将以 JSON 形式返回,并由 Javascript 显示。

我需要用户能够停止此请求,因此我添加了一个 STOP 按钮。我怎样才能让这个按钮在点击时停止 SQL 查询(或更一般地任何正在运行的 PHP 脚本)?

到目前为止我的想法:

  • 在创建按钮时创建唯一的id
  • 在发出 START 请求时将此 id 添加到参数
  • 创建一个 PHP 页面 abort_request.php 并让 STOP 按钮使用唯一的 id 调用它
  • 使 abort_request.php 将唯一的 id 存储到 $_SESSIONaborted 数组中
  • 定期从 PHP/SQL 脚本检查其 id 是否包含在数组中

这是解决这个问题的好方法还是有一些我没有想到的缺点?

最佳答案

我不知道也从未有过繁重的SQL查询的经验,但根据我的经验和我的研究,你可以通过abort();来停止执行 >xmlhttpajax 需要执行 sql 的 php 文件。

我的测试:

index.php

var xmlhttp;
function loadXMLDoc(){
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "mysql.php", true);
xmlhttp.send();
}
function stopLoad() {
xmlhttp.abort();
}

mysql.php

mysql_connect("localhost", "root", "");
mysql_select_db("test");
for ($i = 0; $i < 9999; $i ++) {
INSERT INTO `test`.`big-data` (`id`, `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `i`, `j`, `k`, `l`, `m`, `n`, `o`, `p`, `q`, `r`, `s`, `t`, `u`, `v`, `w`, `x`, `y`, `z`) VALUES ('', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test', 'test');
}

插入数据花了 9.402 秒。如果我停止大约 3 秒,它将停止执行,但仍保留在停止之前插入的数百个数据。

关于javascript - 如何使用 PHP/JavaScript 从客户端停止 SQL 查询执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32176477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com