我有一个JavaScript文件中的AJAX函数,我希望它是抽象的,而不是使用任何全局变量。我可以使用一个函数作为参数吗?
的AJAX可以将事件插入数据库:
function insertCalendarEvents(calendar_group, event_name, event_datestart, event_datestop, event_timestart, event_timestop, event_info, onFinish) {
var request;
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else
request = new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
if(request.responseText.substr(0, 6) == "error ")
alert(errorName[request.responseText.substr(6)]);
else {
var event_id = request.responseText;
//call onFinish function with parameter event_id which database assigned it
}
}
}
request.open("GET", "php/calendar.php?action=insertCalendarEvents&calendar_group=" + calendar_group + "&event_name=" + event_name + "&event_datestart=" + event_datestart + "&event_datestop=" + event_datestop + "&event_timestart=" + event_timestart + "&event_timestop=" + event_timestop + "&event_info=" + event_info, true);
request.send();
}
功能是异步的所以我想要做的是,目前它完成了数据插入到数据库中,我希望它执行函数,我将它作为参数。
如果有关于如何做到这一点一个更好的主意,我会很高兴听到它:)
谢谢你在前进,牛!
你尝试'onFinish(事项标识)'? – pimvdb 2012-03-23 11:34:08
我只是试了一下,它似乎工作:) 我在哪里调用我使用的函数(function(){// stuff});在参数区域 – 2012-03-23 11:37:50
内部,您可能需要考虑使用JavaScript库(例如jQuery:http://api.jquery.com/jQuery.ajax/)来帮助您处理Ajax调用 – jlb 2012-03-23 11:41:36