Tag: 异步

在触发第三个函数之前等待两个异步函数的结束(jQuery Deferred?)

我试图理解jQuery的Deferred ,但是尽管有样本,我无法实现我想做的事情。 所以,我想异步调用2个函数,当BOTH结束时,再调用另一个函数。 这是我的代码 function1(); function2(); function3(); function1()和function2()对我的ASP.NET应用程序进行ajax调用,它们完美地工作。 它们必须在function3()开始之前结束。 我正在阅读并再次阅读文档,但function3()不等待其他两个人的结束。 你能否提供我的一些样本以便我了解Deferred ? 我真的需要他们来完成我项目的一个重要部分。 非常感谢你。 奖金问题 我已经读过了.when延迟…有可能写一些 元素,比如运行function1() ,然后运行 function2() ……等等? UPDATE 关于function1()和function2()更多细节:它们非常相似,这里是它们的主体: function function1() { return $.ajax({ url : “@Url.Action(“MyMethod”, “MyController”)”, contentType : “application/json; charset=utf-8”, dataType : “json” }).done(function(data) { $.each(data, function(index) { pushDatas(data[index]); }) }).fail(function (result) { alert(“function1failed”); }); } function pushDatas(data) { if(!($.inArray(data, […]

异步JavaScript回调

我似乎无法理解这个问题。 我正在使用带有异步回调的Maxmind GeoIP2 JavaScript API来返回纬度,经度和细分或区域。 geoip2.city( function (response) { var latitude = “”; var longitude = “”; var region = “”; latitude = response.location.latitude; longitude = response.location.longitude; region = response.subdivisions[0].iso_code; //Other operations. }, function (error) { try { console.log(error); } catch (ex) { alert(ex); } } ); $(document).ready(function () { //Synchronous JavaScript against the DOM. […]

jquery foreach循环中的javascript函数不等待响应

我的foreach循环: jQuery(“.custom-checkbox”).each(function() { if (jQuery(this).attr(‘data-action’) == ‘true’) { if(deleteQuoteItemFromListing(jQuery(this).attr(‘data-id’))){ console.log(‘passed’); }else{ console.log(‘failed’); } } }); function是(它使用原型)但它成功了 function deleteQuoteItemFromListing(id){ //does someoperations and on success delurl = getDelUrl()+id; //baseurl/module/action/delete/id new Ajax.Request(delurl,{ method: ‘get’, onSuccess: function(transport){ return TRUE; } }) } 但问题是所有foreach都立即执行,并且不等待函数的响应。 即使操作成功,它也会打印failed 。 更新 我首先尝试的另一种方式就是这个 jQuery(‘.delete-from-quote’).click(function() { var i = 0, j = 0; jQuery(“.custom-checkbox”).each(function() { if […]

动态添加的元素不会触发动画

在我的插件中,一些元素将关闭侧边栏。 例如,如果在侧边栏中有一个列表: element 1 element 2 element 3 li元素将触发关闭动画。 我的问题是,如果某些元素是异步加载的,插件将不会“看到”这些元素,并且不会触发动画。 这不只是AJAX我在谈论动态加载的所有元素 ! 代码非常简单,这里有一个例子: var $elements = ‘li’; $elements.click(function() { $sidebar.animate({ //animation }); }); 如何让这些元素对插件可见? 这里有完整的代码https://github.com/dcdeiv/simple-sidebar/blob/master/jquery.simplesidebar.js

如何使用jquery从页面数组加载 – 按顺序

我从一个页面抓取一堆链接,然后从这些页面中提取特定的内容元素。 我刚刚创建的代码可以正常工作。 问题是因为请求是异步的,元素没有按顺序加载。 我尝试添加延迟,但这不起作用。 我需要使用.ajax而不是.load吗? 如果是这样,这个循环追加与.ajax命令的相似之处是什么? 你还可以使用带url的选择器吗? 或者有没有一种有效的方法来实现.load? 提前致谢。 function runthis() { var links = $(“#article-slide-belt a”).map(function() { return this.href; }).get(); $.each( links, function(i, l){ $(“”).load(l + ” .gl_left”, function() { $(“.gl_left”).append($(this).find(“.gl_left”).html()); }); }); }

jQuery Async当URL不同时,仅调用“parallel”

我昨晚玩jQuery和异步调用,发现了一个不寻常的问题。 我想在循环中运行多个Ajax调用。 我写了下面的内容(其中rand.php只是睡了一秒钟并返回一个随机数)。 有点令人惊讶的是它同步执行并需要20秒左右才能完成。 $(document).ready(function () { $([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]).each(function() { var number = this; $.get(“rand.php”, function(data) { $(‘#’+number).html(data); }); }); }); PHP代码如下, 我认为这显然是错误的,因为异步调用应该没有阻塞并几乎并行返回。 经过多次游戏(假设它是一个服务器问题)后,我发现向URL附加任何内容使其看起来像预期的那样不同。 也就是它在3秒左右的时间内返回(一次6个左右的呼叫)。 $(document).ready(function () { $([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]).each(function() { var number = this; $.get(“rand.php?”+number, function(data) { $(‘#’+number).html(data); }); }); }); 我不认为jQuery / Javascript Guru能解释这种行为吗? 这是一些浏览器限制吗? 为什么只有当URL与我所期望的那样运行时不同? 编辑 – 而不是回复,这是使用Chrome(无论是最新的)和Firefox 5/6。 我确实在IE中尝试了它,它确实缓存了它,所以忽略了它并专注于Chrome。 有意思的是第一个在第一页加载时在IE9中按预期工作,但是在重新加载时只显示缓存的结果。

运行多个javascript函数时,只有前几个工作

我想在点击上运行一个运行多个其他javascript函数的函数。 它可以工作,但仅限于前几个被调用的函数。 更多细节:我正在尝试过滤网格。 “savedSearch”函数由一个按钮调用,然后按钮将根据您保存的搜索条件搜索多个字段(即过滤A列中的“星期一”,即模型中的列)。 每个“子function”(“appliedSearch”function)适用于不同的字段。 前几个通常工作(我尝试格式化这许多不同的方式)。 例如,它将过滤列A,B和C,但列D,E和F没有任何反应。 注意:“applySearch”是我试图调用的函数,“ColumnA”是我发送给函数的字段名,@ Html.Raw(Json.Encode(Model.ColumnA))是变量(即“Monday”)在上面的例子中)。 function savedSearch(e){ if (@Html.Raw(Json.Encode(Model.ColumnA)) != “0”) { applySearch1(“ColumnA”, @Html.Raw(Json.Encode(Model.ColumnA))); } if (@Html.Raw(Json.Encode(Model.ColumnB)) != “0”) { applySearch2(“ColumnB”, @Html.Raw(Json.Encode(Model.ColumnB))); } if (@Html.Raw(Json.Encode(Model.ColumnC)) != “0”) { applySearch3(“ColumnC”, @Html.Raw(Json.Encode(Model.ColumnC))); } if (@Html.Raw(Json.Encode(Model.ColumnD)) != “0”) { applySearch4(“ColumnD”, @Html.Raw(Json.Encode(Model.ColumnD))); } if (@Html.Raw(Json.Encode(Model.ColumnE)) != “0”) { applySearch5(“ColumnE”, @Html.Raw(Json.Encode(Model.ColumnE))); } if (@Html.Raw(Json.Encode(Model.ColumnF)) != “0”) […]

JavaScript:4个asyncronys函数在继续之前依次等待彼此完成?

我有四个function: // NOTE: localDataStore is a function to stringify/parse an item from localStorage function removeCookie() { chrome.cookies.remove({“name”:”v1guid”,”url”:”http://website.com”},function (cookie){ console.log(“cookie removed”); }); } function getCookie() { chrome.cookies.get({“url”: “http://website.com”, “name”: “v1guid”}, function(cookie) { console.log(cookie); if(cookie !== null) { console.log(“getting cookie”); localDataStore.set(“cookie”, cookie); console.log(localDataStore.get(“cookie”)); } }); } function setCookie() { var cookiedata = localDataStore.get(“cookie”); chrome.cookies.set({ “url”: “http://website.com”, “name”: […]

使用deferred with jquery ajax调用和异步进程以及用户确认读取

背景 这是继续我的问题正确的方法来设置一系列同步/异步函数,所有这些都可以停止表单提交和进一步处理? 我得到的答案是正确的方法(延期管道),但我仍然无法实现这一点。 我今天刚开始阅读jquery延迟API,但我还没有掌握。 jQuery API文档似乎过于复杂,只有很少的例子。 任何人都可以链接到一些关于此的基本演示/教程吗? 我需要在这里启动。 细节 我在这个项目中使用了jquery 1.6版。 考虑这个例子 – 当用户点击表单提交按钮时 – 1.运行validateInventory()。 一个。 如果validation失败,如果用户同意,则向用户显示确认对话框(转到步骤2) 要么 湾 如果validation通过(转到步骤2) 2.运行preValidateUrls()。 一个。 如果validation失败,如果用户同意,则向用户显示确认对话框(转到步骤3) 要么 湾 如果validation通过(转到步骤3) 3.提交表格。 以下是我所拥有的异步函数的结构 – 请注意,此函数内部还有一个if(确认)块。 阅读我的问题2 。 function validateInventory() { $.ajax({ type: “POST”, url: posturl+”?”+params, dataType: “json”, success: function(res) { if(!res.success) { //display some confirmation dialog, if user agrees […]

Facebook Javascript API,回调函数?

我在我的jQuery Mobile Website使用Facebooks Javascript API来导入facebook page的albums和photos 。 它相当容易使用API​​: window.fbAsyncInit = function() { // init the FB JS SDK FB.init({ appId : ‘YOUR_APP_ID’, // App ID from the app dashboard channelUrl : ‘//WWW.YOUR_DOMAIN.COM/channel.html’, // Channel file for x-domain comms status : true, // Check Facebook Login status xfbml : true // Look for social plugins on […]