我正在使用具有jquery的aspx。 由于加载jquery的延迟,我面临一些风格问题。 请任何人都能告诉我如何快速加载jquery。
我正在构建一个jQuery UI小部件,当我初始化时,我创建了几个div,锚点,输入。 我已经读过,构建一个完整的HTML字符串然后将其附加到DOM比附加每个单独的DOM元素更快。 但是,我稍后需要访问这些元素,所以我也倾向于单独构建它们然后附加它们,所以我已经将它们缓存而不是在我追加所有HTML之后选择它们。 什么通常更快? 例如: var html = $(‘…..several more divs, anchors and inputs all with IDs……’); .append(html); this.container = $(‘#container’); this.search = $(‘#search’); …and so on 要么 this.container = $(”); this.search = $(”); …and the rest of the divs, anchors and inputs then… .append(this.container).append(this.search) ….. and so on
我将从一个完全空白的页面(除了html,head和body之外没有其他元素)开始,然后使用jQuery构建页面。 页面内容将采用AJAX请求中的JSONforms。 JSON中的内容不会包含任何HTML。 将根据JSON对象的结构为页面的不同部分构建包含内容的HTML。 此页面将包含各种滑块,模态和其他“动态”内容。 我的问题是,它会更快(让IE7作为最低的共同点)将HTML构建为一个大字符串(使用比标准连接快得多的字符串构建器)并以批量方式将其注入到正文中,即 var html = “All markup required for the page, built from the contents of the JSON object……etc.” $(“body”).html(html) 然后当它在DOM中时,使用jQuery查找并将插件应用于各种动态部分,即 $(“#slider”).sliderPlugin(options); 要么 将每个元素(或某些元素)创建为变量,然后附加到正文会更好吗? 即 var content = $(”, {id: “content”}) var slider = $(”, {id: “slider”, html=”…”}).appendTo(content); $(‘body’).append(content) 然后使用这种方法我不必查询DOM,我只需要这样做: slider.sliderPlugin(options);
我已经尝试找到答案了,我发现了相关的问题,虽然他们确认了我的发现( 一个多选择器调用比多个单选择器调用慢 ),但没有人告诉我原因。 基本上,当你运行这段代码时: $(“#one, #two”).hide(); $(“#one, #two”).show(); 反对这段代码: $(“#one”).hide(); $(“#two”).hide(); $(“#one”).show(); $(“#two”).show(); 然后后者将更快约50%。 但是,一旦我们添加第三个选择器,性能差异就会快39%。 第四选择器差异:快26%。 第五:快30%。 第六:快31%。 十:快31%。 (请注意,这些值似乎在约5%的范围内) 所以我们得到的东西看起来像这样: 6个选择器的性能似乎达到稳定水平。 它似乎永远不会比通过一次通话完成每一次的速度快31%。 这是为什么? 就个人而言,我喜欢每次通话使用多个选择器,但似乎有一个(相对)大的性能命中。 什么时候(不)适合使用?
我很好奇,你可以编写一个jQuery插件的方式(性能)有什么不同,如果有的话? 我已经看过它做了几个方面: 1.使用$.extend() : (function($){ $.fn.extend({ newPlugin: function(){ return this.each(function(){ }); } }); })(jQuery); 2.你自己的function: (function($){ $.fn.newPlugin = function(){ return this.each(function(){ }); } })(jQuery); 恕我直言,第二种方式更清洁,更容易使用,但似乎用$.extend()编写它可能有一些优势? 或者我是否过度思考这一点,没有明显的区别,这仅仅是个人偏好的问题? (我原本以为这会被问过,但我找不到它 – 如果它在那里,请指示我)
我想知道使用jQuery与使用普通的CSS范围选择器进行选择时使用context参数是否有任何优势。 假设我有这个HTML: All contacts Jim Jones (555) 555-1212 Bob Smith (555) 555-1213 Dave Baker (555) 555-1214 Pete Harrison (555) 555-1215 George Donald (555) 555-1216 Chris Root (555) 555-1217 如果我想从联系人div中获取所有新联系人(标记为’new’类),哪种方法更快,更好地扩展等等。? $(‘.contacts .new’); 要么 $(‘.new’, ‘.contacts’); 的jsfiddle 更新 在答案和评论中散布着很多很棒的信息。 总结一下主要观点,在大多数浏览器中,当存在多个.contacts div时,单个选择器会更好地扩展。 在大多数浏览器中,两个选择器上下文方法更快,只有一个.contacts div存在。 从中获取的有用之处在于我们可以在选择具有id的元素内部时使用一种方法。 $(‘p:first’, ‘#chapter2’); // get the first paragraph from chapter 2 并将单选择器方法用于我们从可能较大的元素组中进行选择的实例。 $(‘.chapter p:first-child’); […]
在Jquery之间有什么区别 $(‘#divid’).html(“”); 和 $(‘#divid’).empty(); 是否在jQuery.js 内部进行相同的操作? 哪一个更好用。
我想知道哪个选项更好,特别是在速度方面: $(‘#id tag’)… 要么 $(‘#id’).find(‘tag’)… 此外,如果您将id和/或tag更改为class或类似input:checked ,则同样的答案是否适用? 例如,哪个更好: $(‘#id input:checked’)…或$(‘#id’).find(‘input:checked’); ?
有很多问题要求缓存jQuery对象,但我找不到一个询问jQuery对象可以和应该缓存的位置。 我有一个网页,其中包含一个包含一系列function的JavaScript文件,如下所示。 $(document).ready(function () { // do some setup }); /* function queries the DOM with the same selector multiple times without caching */ function myFunctionOne() { $(‘#name_input’).css(“border”,”1px solid #ccc”); $(‘#name_input’).val(someValue); } /* function uses cached object from a single query */ function myFunctionTwo() { var nameInput = $(‘#name_input’) nameInput.css(“border”,”1px solid #ccc”); nameInput.val(someValue); // do […]