Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中运行异步命令_Javascript_Asynchronous - Fatal编程技术网

在javascript中运行异步命令

在javascript中运行异步命令,javascript,asynchronous,Javascript,Asynchronous,我正在通过javascript运行一个数据库查询,我想在执行查询语句时显示一条消息“query is running”。但是在整个查询运行之前,消息不会显示。 在javascript中实现这一点的方法是什么。我是一名javascript初学者和自学者,我无法想出办法来实现这一点。我在谷歌上搜索了一下,但找不到任何有用的东西。我的代码是: function runThisQuery() { var connection = new ActiveXObject("ADODB.Connect

我正在通过javascript运行一个数据库查询,我想在执行查询语句时显示一条消息“query is running”。但是在整个查询运行之前,消息不会显示。 在javascript中实现这一点的方法是什么。我是一名javascript初学者和自学者,我无法想出办法来实现这一点。我在谷歌上搜索了一下,但找不到任何有用的东西。我的代码是:

function runThisQuery() {
     var connection = new ActiveXObject("ADODB.Connection"); 
     var rs = new ActiveXObject("ADODB.Recordset"); 
     var connectionstring="Provider=SQLOLEDB;Data Source=server;Initial Catalog=DB;Integrated Security=SSPI";
     connection.Open(connectionstring);

     //code till here is fine

     var dummyCell = document.createElement('td');
     dummyCell.setAttribute('id','dummyCell');
     var dummyCellText = document.createTextNode("running query");
     dummyCell.appendChild(dummyCellText);
     document.getElementById("mismatchSummaryRow").appendChild(dummyCell);

     rs.Open(runThisQuery, connection); //step A
}
我在上面创建的表单元格只有在整个查询(步骤A)运行后才会显示。我希望在执行整个查询(步骤A)之前显示消息。 用JavaScript做这件事的方法是什么?

得到了答案。 [否决该问题的人,至少说明原因。问题出了什么问题??]

将整个数据库获取代码放入setTimeout函数中

function runThisQuery() {
   setTimeout(function() {
   var connection = new ActiveXObject("ADODB.Connection"); 
   var rs = new ActiveXObject("ADODB.Recordset"); 
   var connectionstring="Provider=SQLOLEDB;Data Source=server;Initial Catalog=DB;Integrated Security=SSPI";
   connection.Open(connectionstring);
   rs.Open(runThisQuery, connection);
   },1000);
var dummyCell = document.createElement('td');
dummyCell.setAttribute('id','dummyCell');
var dummyCellText = document.createTextNode("running query");
dummyCell.appendChild(dummyCellText);
document.getElementById("mismatchSummaryRow").appendChild(dummyCell);     
}

可能是我看到的重复,但问题是我从未使用过jquery。希望找到一种通过javascript实现这一点的方法directly@StephenBugsKamenar我不确定那是不是这个的复制品;在这里,我怀疑问题在于正在访问的本机API不是异步的。没错,它不是重复的。但我认为另一个问题的答案回答了这个问题。您只需将
步骤A
放入
设置超时
。。。或者把步骤B上移一行?我不明白为什么有人否决了这个问题。这是什么原因?????