所以,我有一个加载的页面,并通过jquery.get发出几个请求,用它们的值填充下拉列表.
$(function() {
LoadCategories($('#Category'));
LoadPositions($('#Position'));
LoadDepartments($('#Department'));
LoadContact();
};
Run Code Online (Sandbox Code Playgroud)
然后调用LoadContact(); 这是另一个调用,当它返回时,它会填充表单上的所有字段.问题是通常,下拉列表并非全部填充,因此,它无法将它们设置为正确的值.
我需要做的是,只要其他方法完成并且回调完成执行,LoadContact就会以某种方式执行.
但是,我不想在下拉填充回调的末尾放置一堆标志,然后检查,并且在调用LoadContact()之前必须进行递归的setTimeout调用检查;
jQuery中有什么东西可以让我说,"当所有这些都完成时执行它."?
更多信息 我正在考虑这些问题
$().executeAfter(
function () { // When these are done
LoadCategories($('#Category'));
LoadPositions($('#Position'));
LoadDepartments($('#Department'));
},
LoadContact // Do this
);
Run Code Online (Sandbox Code Playgroud)
...它需要跟踪在执行方法期间发生的ajax调用,并且当它们全部完成时,调用LoadContact;
如果我知道如何拦截在该函数中创建的ajax,我可能会编写一个jQuery扩展来执行此操作.
我的解决方案
;(function($) {
$.fn.executeAfter = function(methods, callback) {
var stack = [];
var trackAjaxSend = function(event, XMLHttpRequest, ajaxOptions) {
var url = ajaxOptions.url;
stack.push(url);
}
var trackAjaxComplete = function(event, XMLHttpRequest, ajaxOptions) {
var url = ajaxOptions.url;
var index = jQuery.inArray(url, stack);
if (index >= 0) …Run Code Online (Sandbox Code Playgroud) 我有兴趣实现Facebook"喜欢"按钮,但我想知道用户点击此按钮是什么,所以我可以从中获得一些有用的信息.从我读过的内容来看,Facebook正在让我们陷入黑暗中,谁在点击什么.有人知道如何跟踪哪个用户点击特定产品的类似按钮?
更新:类似按钮由facebook通过iFrame或xFBML呈现.这就是为什么很难跟踪谁点击什么,或嵌入onclick事件等.
在我的项目中,我使用BroadcastReceivers作为来自长时间运行线程的回调(例如,通知活动下载已完成并从Worker发送一些响应数据,Thread以便活动可以向用户显示相应的消息......).要使用BroadcastReceivers,我每次使用时都必须小心注册和取消注册广播接收器,并且当我使用此方法进行更多不同的操作(例如下载,进行WebService调用等)时,还必须特别注意要发送的消息. ..).而且,通过广播的意图发送自定义对象我还需要制作对象Parcelable.
与这种方法不同,我还看到了回调方法方法,它看起来比我使用的方法更简单.回调方法是简单的接口方法实现,可用于实现与应用程序消息传递中的BroadcastRecaiver相同的效果.这种方法不需要Parcelable实现来返回复杂的对象而且它不使用类似的键BroadcastReceiver.我认为不好的部分是我需要在调用回调方法之前检查回调对象的null值.还要确保我从UI线程上的实现运行代码,这样我就可以更新UI而不会出错.
好的,我希望你明白我的意思:).
现在问题是你认为回调方法比BroadcastReceiver单个应用程序内部使用的方法更好(更轻,更干净,更快......)?(请注意,我没有使用Android Service进行后台工作..只是AsyncTask和Threads)
谢谢!
如何在PHP中动态调用类方法?类方法不是静态的.看起来
call_user_func(...)
Run Code Online (Sandbox Code Playgroud)
仅适用于静态功能?
谢谢.
我知道有几个问题就像这样,但我似乎无法得到他们的工作答案.
我有一个列表列表,50次5个元素.现在我想通过对每个元素应用自定义比较函数来对此列表进行排序.此函数计算列表的适合度,元素应按顺序排序.我创建了两个函数,比较和健身:
def compare(item1, item2):
return (fitness(item1) < fitness(item2))
Run Code Online (Sandbox Code Playgroud)
和
def fitness(item):
return item[0]+item[1]+item[2]+item[3]+item[4]
Run Code Online (Sandbox Code Playgroud)
然后我试着通过以下方式打电话给他
sorted(mylist, cmp=compare)
Run Code Online (Sandbox Code Playgroud)
要么
sorted(mylist, key=fitness)
Run Code Online (Sandbox Code Playgroud)
要么
sorted(mylist, cmp=compare, key=fitness)
Run Code Online (Sandbox Code Playgroud)
要么
sorted(mylist, cmp=lambda x,y: compare(x,y))
Run Code Online (Sandbox Code Playgroud)
我也尝试使用相同的参数list.sort().但无论如何,函数不会将列表作为参数而是一个参数None.我不知道为什么会这样,主要来自C++,这与我的回调函数的任何想法相矛盾.如何使用自定义函数对此列表进行排序?
编辑 我发现了我的错误.在创建原始列表的链中,除了使用返回值之外,一个函数没有返回任何内容.抱歉打扰了
我正在推出一个使用的程序 subprocess.Popen(cmd, shell=TRUE)
我对Python很新,但感觉就像应该有一些api让我做类似的事情:
subprocess.Popen(cmd, shell=TRUE, postexec_fn=function_to_call_on_exit)
Run Code Online (Sandbox Code Playgroud)
我这样做是为了function_to_call_on_exit能够在知道cmd退出的基础上做一些事情(例如保持当前正在运行的外部进程数的计数)
我假设我可以相当简单地将子进程包装在一个将线程与Popen.wait()方法结合起来的类中,但是因为我还没有在Python中进行线程化,而且看起来这可能是一个常见的API存在,我想我会先尝试找一个.
提前致谢 :)
我花了一整天的时间在Python中寻找最简单的多线程URL提取器,但我发现的大多数脚本都使用队列或多处理或复杂的库.
最后我自己写了一个,我作为答案报告.请随时提出任何改进建议.
我想其他人可能一直在寻找类似的东西.
python multithreading callback urlfetch python-multithreading
我有以下功能.
function ChangeDasPanel(controllerPath, postParams) {
$.post(controllerPath, postParams, function(returnValue) {
$('#DasSpace').hide("slide", { direction: "right" }, 1000, function() {
$('#DasSpace').contents().remove();
$('#DasSpace').append(returnValue).css("display", "block");
$('#DasSpace').show("slide", { direction: "right" }, 1000);
});
});
};
Run Code Online (Sandbox Code Playgroud)
但我希望能够像这样称呼它
ChangeDasPanel("../Home/Test", {} ,function (){
//do some stuff on callback
}
Run Code Online (Sandbox Code Playgroud)
如何在我的函数中实现对回调的支持?
所以我有这个javascript代码.在safari和chrome中,如果用户拒绝共享位置,它将失败,因为它应该; 但是,在Firefox中,它没有.
任何帮助赞赏.
function initGeolocation()
{
if( navigator.geolocation )
{
// Call getCurrentPosition with success and failure callbacks
navigator.geolocation.getCurrentPosition( success, fail );
}
else
{
alert("Sorry, your browser does not support geolocation services.");
}
}
var map;
function success(position)
{
var longIDText = document.getElementById('longID');
var latIDText = document.getElementById('latID');
longIDText.value = position.coords.longitude;
latIDText.value = position.coords.latitude;
document.getElementById('coordSubmitID').click();
}
function fail(error)
{
alert("FAAAAAAAAAAIIIIIIIIIL")
var zip_code ;
while (true){
// Could not obtain location
zip_code = prompt("Please enter your current address or zip code",""); …Run Code Online (Sandbox Code Playgroud) callback ×10
javascript ×4
python ×3
jquery ×2
.net ×1
android ×1
asynchronous ×1
button ×1
delegates ×1
exit ×1
facebook ×1
firefox ×1
function ×1
geolocation ×1
list ×1
php ×1
sorting ×1
subprocess ×1
urlfetch ×1