㈠ js 如何写回调函数
你的想法可以可以用如下来描述
A借给B100元钱,并且对它说,当你把100元钱用完的时候,马上把钱还给我。
首先A,B是两个独立的页面
在A页面的JS不可能去调用B页面的JS,这是个规定。
㈡ 各位大牛,我现在在JS方法中遇到回调函数的问题。请问一下回调函数是怎么使用的,在什么时候返回
父窗口可以在取得iframe对象以后(document.getElementById)以后(比如ifa),用ifa.function1()来调用iframe里面window.function1函数,iframe里面的js可以用parent.function2()来调用父窗口里面的window.function2函数。
赋值的话就更简单了,ifa.aaa = 0,就是把子窗口里面的window.aaa赋值为0了,子窗口里面的js直接用window.aaa就可以取得这个值,同理,iframe里面的js用parent.bbb = 1,就是把父窗口的window.bbb赋值为1了,父窗口就可以用window.bbb来取用这个值了。
㈢ JS回调函数
常用于ajax,获取到服务端返回的数据后执行回调
㈣ 什么是JavaScript中的回调函数,作用是什么
var req;
function validate() {
var idField = document.getElementById("userid");
var url = "Validate.jsp?id=" + encodeURI(idField.value);
init();
req.open("GET", url, true);
req.onreadystatechange = callback;
//callback就是回调函数,当触发req.onreadystatechange时,调用callback获取url传回的东西
req.send(null);
}
function init() {
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function callback() {
if(req.readyState == 4) { //反馈回到客户端
if(req.status == 200) { //反馈完全正常
//alert(req.responseText);
var msg = req.responseXML.getElementsByTagName("msg")[0];
//alert(msg);
setMsg(msg.childNodes[0].nodeValue);
}
}
}
function setMsg(msg) {// 页面中的span <span id="usermsg"></span>
//alert(msg);
mdiv = document.getElementById("usermsg");
if(msg == "invalid") {
mdiv.innerHTML = "<font color='red'>username exists</font>";
} else {
mdiv.innerHTML = "<font color='green'>congratulations! you can use this username!</font>";
}
}
Validate.jsp
<%
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0); //prevents catching at proxy server
System.out.println(request.getParameter("id"));
//check the database 可以先去数据库取
response.getWriter().write("<msg>valid</msg>");//写这个内容,随便指定
%>
㈤ 什么是JS回调函数
回调函数就是某个函数执行完毕后执行的函数,没什么的啊。比如:
function(callback){
// 代码
// 以上代码执行完毕后执行回调函数
if(typeof callback === "function"){
callback();
}
}
这是因为js中函数可以当做参数直接传递进去。
㈥ node.js回调函数什么时候调用
1.阻塞调用(读取完文件再执行后面的操作)
?
1
2
3
4
var fs = require("fs");
var data = fs.readFileSync('/fs.txt');
console.log(data.toString());
console.log("程序执行结束!");
输出结果:
“文件内容”
“程序执行结束!”
2.非阻塞调用(读取文件和其他操作同步执行)
?
1
2
3
4
5
6
var fs = require("fs");
fs.readFile('/fs.txt',function(err,data){
if(err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
输出结果:
“程序执行结束!”
“文件内容”
如果我们每行代码的执行都不依赖于上一行代码的执行结果,那没问题,顺序执行就好。
但是如果我们某行代码的执行,依赖于上一行代码的结果,这个时候就需要回调函数了。我们必须要使用回调函数返回上一行代码的结果,然后才能继续执行这一行代码。
㈦ noodjs 回调函数何时被调用
回调函数是还说成功执行扣被调用。
㈧ js回调函数是干什么的呢
1、回调函数的概念
回调是一个函数,它作为参数传递给另一个函数,并在其父函数完成后执行。
function doSomething(msg, callback){
alert(msg);
if(typeof callback == "function")
callback();
}
doSomething("回调函数", function(){
alert("匿名函数实现回调!");
});
2、通常使用场景:
从上面的例子,我们可以看出回调与同步、异步并没有直接的联系,回调只是一种实现方式,既可以有同步回调,也可以有异步回调,还可以有事件处理回调和延迟函数回调,这些在我们工作中有很多的使用场景。
㈨ js回调函数
您好,回调函数可以继续扩展一个函数的功能,可以是程序非常灵活。
比如:
function showDiv(callback){
$("#div1").show();
callback($("#div1"));
}
showDiv(function($div){
$div.text("hello world");
});
//原本showDiv的功能就是现实一个div,加了callback函数当参数后就可以在执行完show之后改变div中的文字。
一般来说,callback函数用在异步中的例子比较多,因为在异步调用中,只能通过回调函数继续执行某个动作。
例如:
function myThread(callback){
return setTimeout(1000*10,function(){
$("#div").append("<p>hello</p>");//10秒后在div中加一个行,然后在执行callback函数
callback();
});
}
㈩ js回调函数有什么用
很容易把一个函数作为参数传递。
functionfn(arg1,arg2,callback){
varnum=Math.ceil(Math.random()*(arg1-arg2)+arg2);
callback(num);//传递结果
}
fn(10,20,function(num){
console.log("Callbackcalled!Num:"+num);
});//结果为10和20之间的随机数
可能这样做看起比较麻烦,甚至有点愚蠢,为何不正常地返回结果?但是当遇上必须使用回调函数之时,你也许就不这样认为了!
传统函数以参数形式输入数据,并且使用返回语句返回值。理论上,在函数结尾处有一个return返回语句,结构上就是:一个输入点和一个输出点。这比较容易理解,函数本质上就是输入和输出之间实现过程的映射。
但是,当函数的实现过程非常漫长,你是选择等待函数完成处理,还是使用回调函数进行异步处理呢?这种情况下,使用回调函数变得至关重要,例如:AJAX请求。若是使用回调函数进行处理,代码就可以继续进行其他任务,而无需空等。实际开发中,经常在javascript中使用异步调用,甚至在这里强烈推荐使用!
下面有个更加全面的使用AJAX加载XML文件的示例,并且使用了call()函数,在请求对象(requested object)上下文中调用回调函数。
functionfn(url,callback){
varhttpRequest;//创建XHR
httpRequest=window.XMLHttpRequest?newXMLHttpRequest()://针对IE进行功能性检测
window.ActiveXObject?newActiveXObject("Microsoft.XMLHTTP"):undefined;
httpRequest.onreadystatechange=function(){
if(httpRequest.readystate===4&&httpRequest.status===200){//状态判断
callback.call(httpRequest.responseXML);
}
};
httpRequest.open("GET",url);
httpRequest.send();
}
fn("text.xml",function(){//调用函数
console.log(this);//此语句后输出
});
console.log(".");//此语句先输出
我们请求异步处理,意味着我们开始请求时,就告诉它们完成之时调用我们的函数。在实际情况中,onreadystatechange事件处理程序还得考虑请求失败的情况,这里我们是假设xml文件存在并且能被浏览器成功加载。这个例子中,异步函数分配给了onreadystatechange事件,因此不会立刻执行。
最终,第二个console.log语句先执行,因为回调函数直到请求完成才执行。