- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 jQuery $.getJSON 方法发送到 MySQL 服务器的查询。当服务器正在处理此查询时,我想发出一个新查询来取代前一个查询并杀死旧线程。
我尝试使用此 post 中的以下方法,如下图:
var request = $.getJSON(....);
request.abort();
但是,它仅在浏览器级别实现了中止功能。 我需要的是向服务器发送一个kill命令,这样它就不会继续查询已经中止的东西。
最佳答案
做到这一点的唯一方法是发送一个新请求,命令服务器明确地了解另一个请求。但首先,我认为 PHP 根本不可能做到这一点。其次,如果可以的话,这意味着您必须告诉客户端有关 MySQL 线程的信息,以便稍后它可以告诉服务器要杀死哪个线程。然而,如果 PHP 实际上正在等待该查询,则很难让 PHP 返回此信息。不仅MySQL进程挂起,PHP进程也挂起。
MySQLi 来救援。
如果您使用 MySQLi,则可以调用 mysqli_kill,它接受进程 ID。这是连接 MySQL 时得到的线程。调用mysqli_thread_id
来获取这个id。
存储线程 ID。
如果您将此 id 存储在 session 中,您也许能够在下一个请求中获取该 id 并将其终止。但恐怕上一个请求可能无法保存 session (因为它仍在运行),因此线程 id 可能尚未存储。
如果确实是这种情况,您可以让第一个请求将线程 ID 存储在 memcache 或另一个表中(内存表即可)。使用 session ID 作为 key 。然后,在您的终止请求中,您可以使用 session ID 查找线程 ID 并终止其他请求。
不适用于第一次请求
仅当第一个请求挂起时,这才会造成问题,因为在这种情况下,您还没有 session 。
(我假设 PHP 也可能是另一个服务器进程。无论如何,它不是直接连接到 MySQL 的 JavaScript)。
关于mysql - 如何终止使用 $.getJSON 方法发出的 MySQL 查询线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482154/
我正在尝试获取客户端的 IP 地址和 GPS 坐标。使用 jQuery,我有这个: $.getJSON("http://jsonip.appspot.com/", function(data) {
这个问题已经有答案了: Why does JQuery.getJSON() have a success and a done function? (2 个回答) 已关闭 6 年前。 我想知道这两个代
所以首先,是的,我知道有几个答案,但没有一个能够解决我的问题。首先我将展示我的代码HTML: Shop
假设我有以下 JavaScript: (function($) { $.getJSON(url, function(data) { $.each(data.rows, function(i
是否可以使用 jQuery 在另一个 getJSON 请求中使用 getJSON 请求? 像这样: // Population the Requests List // jQuery AJAX cal
我有以下代码,该代码已针对此问题进行了简化。基本上我有一个循环,在每次迭代中调用 jquery getJSON 函数,调用 API 端点来获取一些天气数据。问题是,当 getJSON 请求被触发时,我
我有一个使用 getJSON 的函数,但它没有像我预期的那样工作。 function balbla(name, param) { $.getJSON("/blabla.json?nam
我有一段代码,例如: $.getJSON("http://mysite.org/polls/saveLanguageTest?url=" + escape(window.location.href)
我正在使用jquery.getJSON() ,但我不知道如何进行错误处理。这些是我需要处理的一些情况。 1)如果返回的数据为null怎么办? 2)如果返回的数据不能解析json怎么办? 3) 如果返回
我正在通过参与一个测试项目(包括 SubSonic 和 jQuery)来学习 asp.net mvc。 我遇到的问题是,每次我想要返回的不仅仅是简单字符串(例如 Json 对象)时,我都会遇到困难,因
执行跨域查询,如果运行的URL不可用(404),如何执行某个功能?我尝试这样的事情: $.getJSON({ url:'example.php?callback=?', statusCode: { 4
我在 jQuery 中搜索了相关主题,但没有找到任何方法来解决我的问题。 $(document).ready(function(){ $("#inputForm").submit(functi
当调用 yahoo Web 服务 (http://boss.yahooapis.com/ysearch) 返回数据集时,是否可以设置超时并在超时后退出例程? jQuery.getJSON("http:
我正在使用 jQuery getJSON() 函数。这个函数获取数据没有问题。但有时等待,等待等待......我的加载栏在页面中心显示加载加载。 所以 jQuery ajax() 函数有一个超时变量。
我有一个 html 代码: asd $('button').click( function() { $.getJSON('/schedule/test/', function
目标:我所追求的是每次在数据库中添加某些内容时(在 $.ajax 到 Submit_to_db.php 之后),从数据库获取数据并刷新 main.php(通过 draw_polygon 更明显)。 所
我已经阅读了文档并用谷歌搜索了此内容,但没有看到问题所在。我正在尝试从本地 json 文件获取一些数据。我已在 JSONLint 验证了响应数据 代码 $(document).ready(functi
我在json.getJSON方法上遇到麻烦。这是我当前的代码: var jqxhr = $.getJSON("http://127.0.0.1:5002?callback=?", function()
我需要进行跨域请求,并且 getJSON 有问题。 $.getJSON("http://usr:pwd@10.0.1.xx/cgi-bin/remote/request.cgi?m=json&r=gr
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 8 年前。 这是我的问题 我有一个充满
我是一名优秀的程序员,十分优秀!