草庐IT

deferreds

全部标签

javascript - 我应该在 bottom body 标签之前的脚本上使用 defer 吗?

每次我把我的js文件放在页面底部时,这个问题一直困扰着我。如果我将所有js文件放在结束body标记之前的底部,那么我认为浏览器将首先下载所有html和样式表,然后解析html和css,最后发送请求js文件。所以,对已经在底部的js文件使用defer会有什么不同吗?非延迟脚本是否在body标签渲染阻塞之前结束?我的另一个问题是,如果我将所有js文件放在头部并对其使用defer。这是否相当于将所有js文件放在底部?浏览器在head中看到带有defer的js会向服务器发出请求,然后继续下载其余的html文件,还是仅在下载所有html和css后才向服务器发出请求?据我所知,async等同于de

javascript - 今天有什么理由不使用 <script defer> 吗?

曾几何时,关于的争论很多。在或.许多SO帖子已经指出最佳实践/经验法则是放置在结束之前因为不阻塞html解析器,导致更快的首屏绘制和更快的客户端DOM访问,从而获得更好的用户体验。Thismustbeaduplicate╰(‵□′)╯等等……可以是deferred现在,实际上已经有一段时间了!旧帖说deferredscriptmayresultsJSdependencyissues不,不会。当解析DOM时,它会立即保留执行顺序。Itdoesn'tworkcrossvendors是的,它曾经是,但今天几乎所有主要浏览器vendor都支持它:http://caniuse.com/#sear

javascript - 使用 "defer"属性时是否需要将脚本放在页面底部?

我总是将我的脚本标签放在页面底部,因为在HTML/CSS和文本等内容完成加载后加载脚本是一种很好的做法。我刚刚发现了defer属性,它基本上做同样的事情,那就是它会等到页面完成加载后再获取和执行脚本。因此,如果使用defer属性,是否有必要将script标签物理地放置在页面底部而不是head标签内?我发现将script标签放在head部分内对可读性更好。或//dosomething 最佳答案 当前的最佳实践?在头部按顺序使用延迟脚本,除非您需要支持旧版浏览器(IEref)为什么?使用defer时,解析就像我们将脚本放在body标记的

jquery - 什么时候应该使用jQuery deferred的 "then"方法,什么时候应该使用 "pipe"方法?

jQuery的Deferred有两个函数可用于实现函数的异步链接:then()deferred.then(doneCallbacks,failCallbacks)Returns:DeferreddoneCallbacksAfunction,orarrayoffunctions,calledwhentheDeferredisresolved.failCallbacksAfunction,orarrayoffunctions,calledwhentheDeferredisrejected.pipe()deferred.pipe([doneFilter][,failFilter])Retur

javascript - 我如何判断一个对象是否是 jQuery Promise/Deferred?

我有一个接受单个参数的函数。我需要能够判断此参数是jQueryPromise还是Deferred对象。如果不是,那么该值可能是任何类型并具有任何属性,因此仅仅存在promise方法是不安全的。这是我希望我的函数如何运行的示例:functiondisplayMessage(message){if(messageisaPromiseorDeferred){message.then(displayMessage);}else{alert(message);}}注意promise的递归处理:如果一个promise用另一个promise值解决,我们不会显示它,我们等待它被解决。如果它返回另一个p

javascript - 将 defer 属性添加到 javascript_include_tag Rails

有什么方法可以添加defer使用javascript_include_tag轻松设置属性Rails中的助手?即,是否有一些简单的方法可以转向进入 最佳答案 "defer"%>这将使您(在开发中): 关于javascript-将defer属性添加到javascript_include_tagRails,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10982375/

javascript - 在循环中使用 $.Deferred() 和嵌套的 ajax 调用

我花了太多时间寻找类似的问题并尝试解决方案,所以我希望有人能提供解决方案。基本上,我希望在函数a()完成时收到通知。问题在于该函数包含一个ajax调用和一个调用b()的循环,后者又包含一个ajax调用。使用FIDDLE更新:http://jsfiddle.net/hsyj7/1/像这样://calledbymain()functiona(){return$.ajax("http://url1").pipe(function(data){for(vari=0;i我想看到的是,可能在顶部对a()的两次调用:acalledbcalledbcalledacalledbcalledbcalled

javascript - <script defer> 和 $(document).ready

根据http://caniuse.com/script-defer,大多数浏览器都支持script标签的defer属性。我想知道是否指定了脚本在jQuery的$(document).ready()之前或之后执行?主要的现代浏览器(Chrome、Firefox、IE等)的执行顺序是一致的还是有所不同? 最佳答案 基于这个fiddle我不得不说jQuery的$(document).ready()在用声明的脚本之后执行推迟。我用Firefox和Chrome对其进行了测试,无论脚本的顺序如何,它们都具有相同的行为。我猜其他浏览器的行为可能会

javascript - 如何在自定义函数中使用 jQuery promise/deferred?

我有一个通过navigator.geolocation获取位置的函数:vargetLocation=function(callback){navigator.geolocation.getCurrentPosition(callback||function(position){//Stuffwithgeolocation});};我想这样做,以便我可以使用jQuerys的Deffered链接这个函数对象,但我仍然没有掌握Deffered的概念和用法。我正在寻找类似于此伪代码的东西:getLocation().then(function(){drawMarkerOnMap();});如果

javascript - jQuery.when - 当 ALL Deferreds 不再是 'unresolved'(解决或拒绝)时的回调?

当多个Deferred对象传递给jQuery.when时,该方法从一个新的“主”Deferred对象返回Promise,该对象跟踪它已传递的所有Deferred的聚合状态。该方法要么在所有Deferred都解决后立即解决其主Deferred,或者一旦其中一个Deferred被拒绝,就拒绝其主Deferred。如果主Deferred已解析(即所有Deferred都已解析),它会传递传递给jQuery.when的所有Deferred的已解析值。例如,当Deferred是jQuery.ajax()请求时,参数将是请求的jqXHR对象,按照它们在参数列表中给出的顺序:$.when($.getJ