2

setInterval在我的网站中使用功能时遇到问题。我在下面有一小部分代码。我基本上是在尝试将计数增加 1 并将其打印在屏幕上。

<div id="test"></div>

<script>

var count = 0;
setInterval(function() {
    document.getElementById('test').innerHTML=count;
    count++;
}, 1000);


</script>  

编辑:我没有jquery在代码中使用,因为从上面应该很清楚。但是,我在这里面临的问题是,当我在移动设备中打开 html 的歌剧 mini时,它显示的计数是1 to 31 to 4。它不会继续。我有一个外部网址。请在移动设备中打开网址并查看问题。http://fundoophoto.com/raman/Test/

4

4 回答 4

3

Opera Mini 实际上并不执行 javascript:

它通过使用基于代理的架构来做到这一点。来自用户手机的请求通过运营商的互联网网关到达 Opera 的转码服务器。然后这些服务器将请求转发到服务器。Opera Mini 请求通过 Opera 的服务器。
服务器正常发回响应——当 Opera 转码服务器收到此响应时,它们会解析标记和样式,执行 JavaScript,并将数据转码为 Opera 二进制标记语言 (OBML)。此 OBML 数据由 Opera Mini 逐步加载到用户设备上。将其视为文档状态的交互式快照,其形式类似于 PDF。

您应该阅读有关此功能的页面:https ://dev.opera.com/articles/opera-mini-and-javascript ,尤其是有关功能的部分setIntervalsetTimeout

这意味着如果您使用 setInterval 调用一个函数,它将被调用最多 n 次,其中 n 是超时除以间隔的商。如果间隔为 1000 毫秒,则该函数将在整个脚本暂停之前最多执行五次(在较新版本的 Opera Mini 中)(5000 ÷ 1000 = 5)。如果间隔为 5000 毫秒,则在暂停前执行不超过一次。

于 2014-12-26T18:39:45.050 回答
1

这对于移动浏览器来说是一件特别的事情。正如我在这里所读到的,它意味着快速有效。因此,如果您的脚本需要很长时间,它会被浏览器本身中断。这是迷你歌剧的一个特点。

于 2014-12-27T07:46:53.887 回答
0

在 Opera Mini 中浏览网页时,JavaScript 由代理服务器(opera 服务器)处理,仅在设备上呈现

在将页面发送到移动设备之前,会触发其 onLoad 事件,并且所有脚本最多允许执行两秒钟。setInterval 和 setTimeout 函数被禁用,因此设计为在执行前等待一定时间的脚本根本不会执行

于 2015-01-03T11:53:12.243 回答
0

我认为调用 yourbeddingnumbering 时 DOM 未完全加载。尝试将其包装在 DOM 就绪事件侦听器中。

  var count = 0;
  document.addEventListener("DOMContentLoaded", function(event) {
setInterval(function() {
    document.getElementById('test').innerHTML=count;
    count++;
}, 1000);
  });
于 2014-12-26T05:27:55.017 回答