Tag: 浏览器

jQuery DOM操作 – 性能比较?

我正在使用jQuery学习DOM操作,并希望了解浏览器性能最佳实践。 假设我有两个DOM元素(div,p,ol等),我希望用户只能看到第一个元素,然后才能看到第二个元素。 我可以: 使用replace() remove()第一个元素和add()第二个元素 hide()第一个元素,show()第二个元素 两者之间的性能差异是什么: 1对2 2比3 1对3 如果元素属于不同类型,是否还有其他性能考虑因素? 或者,如果元素是按钮或表单字段?

如何在漫长的javascript计算过程中强制在浏览器中进行UI更新?

我在Web应用程序中有一个位置,我在浏览器中使用JavaScript进行了大量计算。 它们可能需要不到一秒钟到大约一分钟才能运行,我想在此步骤中显示进度对话框,但是在我的计算完成之后才会显示对话框。 我开始只是尝试显示一个jquery对话框: HTML: This should show up immediately on clicking the button. 脚本: $(function() { $(“#startwork”).click(function () { $(“#dialog”).dialog(“open”); // Do some lengthy calculations for (var i=0; i<1000000000; i++) { var foo = Math.random(); } $("#dialog").dialog("close"); alert("done"); }); $("#dialog").dialog({ autoOpen: false }); }); 我可以做些什么来强制UI在计算开始之前以及在计算期间的定义间隔进行更新?

javascript事件队列有优先权吗?

这些天,我已经阅读了一些关于setTimeout,setInterval的文档。 我了解到javascript是一个单独的线程,每次只执行一段代码。 同时,如果有事件发生,它将被推入事件队列并阻塞直到适当的时间。我想知道,当许多事件被阻塞等待同时执行时。这些事件是否有所不同优先级,所以高优先级事件将在低优先级之前执行。或者只是一个FIFO队列。 setTimeout(fn1, 10); $(document).click(fn2); //will be called at 6ms; $.ajax({ajaxSuccess(fn3); //async request,it uses 7ms;}) for () { //will run 18ms; }; 在上面的代码中,setTimeout fn1将在10毫秒发生,点击事件处理程序fn2将在6毫秒,ajax回调fn3将在7毫秒。 但是所有这三个函数都将被阻塞,直到for循环结束。在18ms,for循环结束,所以这些函数的调用顺序是什么。(fn1,fn2,fn3)或(fn2,fn3,fn1)

如何使用jQuery或JS检查事件处理程序是否存在?

我想在将函数绑定到它之前检查事件是否可用。 问题是Google Chrome支持Video元素中的“loadedmetadata”事件,而FireFox则不支持。 我做了以下 $(‘video’).bind(‘loadedmetadata’, videoloaded); videoloaded(); 它在Firefox中运行良好但是当我在Chrome中尝试时,该function执行了两次(这是合乎逻辑的)。 我想检查是否存在loadedmetadata事件处理程序,以便在每个浏览器中只运行一次该函数。 如果不存在这种可能性,任何明智的工作都可以解决这个问题?

禁用一页应用程序的浏览器后退按钮

我需要在单页面应用程序中禁用浏览器的后退按钮。 我尝试使用像onhashchange或window.history.forward这样的方法,但它们不起作用(原因可能是这里的url没有改变)请帮忙! 谢谢。

如何检查浏览器是否支持HTML5?

编辑我现在更改了一些Javascript,所以如果我能找到一个检测HTML5video支持的javascript函数,它应该可以工作。 我有一个HTML5video播放器有闪存后备,如果HTML5不支持,我希望它回退到闪存。 我目前正在使用 then load my custom player else use SWFObject to render it. 有可能做到以下几点: ` If (HTML5 supported browser) { (My custom player) }else{ (I would call SWFobject here) } ` 试图找到一个很好的简单解决方案的想法。 通常我可以在video标签中有一个额外的 ,但由于播放器插入页面的方式,这是不可能的。 即使我可以使用可能不可靠的方法检测HTML5支持,但我不确定如何根据支持的输出获取HTML

如何使用JQuery检测用户是否滚动到页面底部?

一旦它触及底部,那么有一个回调函数?

听取浏览器回流事件

我正在尝试收听浏览器reflow-events以了解代码的哪些部分是最昂贵的。 当必须(重新)绘制到屏幕上时,例如当将新元素添加到DOM时,会发生回流。 有没有办法在例如/用Javascript中监听这些事件,以便进一步分析?

JavaScript:动态(动态)创建样式元素的优点和缺点

在JavaScript中,我们可以动态创建元素并附加到部分,以便为大量元素应用CSS规则。 这种方法的优点和缺点是什么? 如果与javascript迭代相比,它确实提供了性能提升。 幕后的内容(浏览器内部)? 哪一个更快或更慢? Javascript迭代元素或在浏览器中动态添加CSS? 处理时间怎么样? 处理负荷? 为了更好地理解我使用此方法的问题,请参阅以下示例: 示例:如果我的表包含20个或更多列以及1000行或更多,如下所示: Id Name Family Name SSN //Other table data 1 Nick Jackson 123456 //Other table data //Other rows 809 Helga Jhonson 125648 //Other table data //Other rows 1001 Nick Jhonson 216458 //Other table data //Other rows 如果有人需要jsFiddle示例,我可以稍后创建一个。 情况1:如果我想动态隐藏只包含SSN数据的表列。 我可以应用几种方法来做到这一点。 这种方法可分为两大类。 在第一类解决方案中,我可以迭代td元素并动态更改列的样式。 在第二种方法中,我可以通过动态创建一个使用预定义的CSS规则来应用CSS,如@Frits van Campen所述 。 ( […]

检查用户浏览器中是否已关闭位置设置

我想隐藏()或show()一个按钮,允许用户根据他们当前是否允许在浏览器设置中使用位置来使用他们的当前位置。 以下代码仅检查浏览器是否支持地理定位,而不检查特定用户是否允许地理定位。 if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML=”Geolocation is not supported by this browser.”;} } 是否有一个布尔值,我可以检测他们的浏览器设置,让我知道当前是否允许位置? 谢谢你的任何建议。