- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我按照 W3Schools 的本教程创建了一个图像幻灯片:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_auto
它通过 setTimeout()
使用递归函数自动滑动图像。这对用户的浏览器性能不利吗?或者我可以不用担心地使用它吗?
var slideIndex = 0;
showSlides();
function showSlides() {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slideIndex++;
if (slideIndex > slides.length) {
slideIndex = 1
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
setTimeout(showSlides, 2000); // Change image every 2 seconds
}
最佳答案
如果通过递归,您的意思是 setTimeout
最终调用另一个(或更常见的是本身),然后不。
事实上,这是解决问题的首选方式。
通过使用 setTimeout
它使浏览器在更新之间休息以进行其他更新(也就是“非阻塞”)。
您也可以使用 setInterval
让它运行,但问题是如果出现问题,您必须显式调用 clearInterval
否则它只会不断抛出错误。setTimeout
只会抛出一个错误并停止(因为它不会调用另一个 setTimeout
)。 setTimeout
绝对是我和许多其他人的首选方法。
它也不会产生任何类型的堆栈溢出(就像普通的递归函数,如果它们递归太长的话),因为从这个意义上说它并不是真正的递归。
关于javascript - 递归 setTimeouts 对性能不利吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63503762/
以下排序算法对什么样的数据输入有效/无效?快速排序、归并排序、堆排序、插入排序等 我知道至少有 2 个因素会影响排序算法的性能:1) 输入的大小,以及 2) 数据是否已经大部分排序。但我不确切知道这些
我正在为一个我还没有建立的网站做一些 SEO,它有这个导航栏: Profile
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在尝试使用 HTML5 中的标签更多地作为容器,因为此标签现在可以将 block 元素作为子元素,例如: 之前(有效的 XHTML 1.1) article title
我有一个重 ajax 的网站。我更新了地址栏中的散列值,以便存储浏览历史 - 因此前进和后退按钮仍然有效。例如,一个典型的用例是: site.com/directory#sports/1 site.c
如果我决定在我的网站中使用一些 javascipt,例如 $('#body').load(URL); 或 $.get(URL, {param:value}, function(){ ... }); 或
我正在我的网站 (wordpress) 上构建一个页面,我正在其中拉入多个帖子类型 people (url: site.com/people/name -of-person) 到名为 people (
我正在处理一个请求,该请求根据页面上项目的“状态”更改页面的 OG 元标记,这可能每隔几天就会更改一次。目标是在用户共享页面时显示与“当前状态”相关的内容,例如“X 正在发生!”而不是正常的“这是 X
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 4 年前。 Improve
我在一家将创建网络服务堆栈架构(基于概率论)的企业工作,我是相关技术负责人。该架构将使用 Java 平台创建,但我对一些团队成员有疑问:他们来自 Oracle 的老派(即他们使用 PL/SQL 完成了
我在 fiddler 上注意到 [RequireHttps] 执行状态代码 302 重定向而不是 301。我不确定这有什么意义...... 如果您说的是 Controller [RequireHttp
我是一名优秀的程序员,十分优秀!