opera mini和其他移动浏览器的JavaScript设置间隔
我在我的网站中使用opera mini和其他移动浏览器的JavaScript设置间隔,javascript,html,mobile,opera-mini,Javascript,Html,Mobile,Opera Mini,我在我的网站中使用setInterval功能时遇到问题。下面是我代码的一小部分。我基本上是想把计数增加1,然后在屏幕上打印出来 <div id="test"></div> <script> var count = 0; setInterval(function() { document.getElementById('test').innerHTML=count; count++; }, 1000); </script>
setInterval
功能时遇到问题。下面是我代码的一小部分。我基本上是想把计数增加1,然后在屏幕上打印出来
<div id="test"></div>
<script>
var count = 0;
setInterval(function() {
document.getElementById('test').innerHTML=count;
count++;
}, 1000);
</script>
var计数=0;
setInterval(函数(){
document.getElementById('test').innerHTML=count;
计数++;
}, 1000);
Edit:我没有在代码中使用
jquery
,因为从上面可以清楚地看到这一点。然而,我在这里面临的问题是,当我在移动设备的opera mini中打开html时,它显示的计数是1到3或1到4。它不会继续。我有一个外部url。请在移动设备中打开url并查看问题 我认为调用beddingnumber时DOM没有完全加载。尝试将其包装到DOM就绪事件侦听器中
var count = 0;
document.addEventListener("DOMContentLoaded", function(event) {
setInterval(function() {
document.getElementById('test').innerHTML=count;
count++;
}, 1000);
});
Opera Mini实际上并不执行javascript: 它通过使用基于代理的体系结构来实现这一点。来自用户手机的请求通过运营商的互联网网关进入Opera的转码服务器。然后,这些服务器将请求转发到服务器。 Opera Mini请求通过Opera的服务器。
服务器按正常方式发送响应—当Opera代码转换服务器接收到响应时,它们解析标记和样式,执行JavaScript,并将数据转换为Opera二进制标记语言(OBML)。Opera Mini在用户设备上逐步加载此OBML数据。可以将其视为文档状态的交互式快照,其形式类似于PDF 您应该阅读本页有关此功能的内容:尤其是有关
setInterval
和setTimeout
功能的内容
这意味着,如果使用setInterval调用函数,将最多调用n次,其中n是超时除以间隔的商。如果间隔为1000毫秒,则在暂停整个脚本(5000÷1000=5)之前,函数最多执行五次(在较新版本的Opera Mini中)。如果时间间隔为5000毫秒,则在暂停之前将只执行一次
这对于移动浏览器来说是一个例外。正如我读到的,它意味着快速有效。因此,如果脚本需要花费大量时间,它会被浏览器本身打断。这是opera mini的一项功能。在opera mini中浏览网页时,JavaScript由代理服务器(opera服务器)处理,仅在设备上呈现
在将页面发送到移动设备之前,将触发其onLoad事件,并且允许所有脚本最多执行两秒钟setInterval和setTimeout函数被禁用,因此设计为在执行前等待一定时间的脚本将根本不会执行代码工作正常您面临的问题。请提一下。这将有助于解决您的问题。它是否是移动浏览器并不重要。应该平等地工作。Besauce jQuery也在移动设备上使用。也许这是一个普遍的问题?但我看不到,因为你的描述是中级的。@Manwal它在笔记本电脑上运行良好,而不是在手机上;至少对我来说是这样。@ketan添加了描述和测试(外部)url。请在移动设备中打开url。您的解决方案没有帮助。