【发布时间】:2015-09-11 08:07:44
【问题描述】:
我被这个问题困住了,我发现了很多帖子,但似乎没有用。所以我再次在这里发帖,希望有人可以帮助我。
假设我有 2 个按钮,1 个是开始按钮,1 个是停止按钮。当我按开始时会调用查询很长时间的ajax函数。我需要当我按下停止时会立即停止这个查询,不再执行。
这是用于调用查询和获取行的函数。 (自定义Mysqli.php)
public function fetchMultiRowset($params = array()) {
$data = array();
$mysqli = $this->_adapter->getConnection();
$mysqli->multi_query($this->bindParams($this->_sql, $params));
$thread_id = mysqli_thread_id($mysqli);
ignore_user_abort(true);
ob_start();
$index = 0;
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$data[$index] = $row;
$index++;
echo " ";
ob_flush();
flush();
}
$result->free();
}
}
while ($mysqli->more_results() && $mysqli->next_result());
ob_end_flush();
return $data;
}
模型中的功能:
public function select_entries() {
$data = null;
try {
$db = Zend_Db_Adapter_Mysqlicustom::singleton();
$sql = "SELECT * FROM report LIMIT 2000000";
$data = $db->fetchMultiRowset($sql);
$db->closeConnection();
} catch (Exception $exc) {
}
return $data;
}
控制器:
public function testAction(){
$op = $this->report_test->select_entries();
}
在 AJAX 中,我使用 xhr.abort() 来停止 AJAX 功能。但在 AJAX 中止时它仍然运行查询。
如何停止查询?我用的是 Zend 框架。
【问题讨论】:
-
请将代码格式化为代码,而不是块引用