所以在我的js脚本中我使用jQuery,在顶部我写道:
$(function() {
myFunc();
function myFunc() {
console.log("1");
}
});
"1"
只打印一次,这意味着myFunc
只运行一次,我希望它每隔一帧/毫秒运行一次,或者基本上尽可能快地反复运行。为什么不这样发生?如果我做错了,我怎样才能达到我想要的效果,我的错误是什么?
答案 0 :(得分:1)
你可以使用setTimeout()
在一段时间假设5秒后执行相同的功能
$(function() {
myFunc(); // call initially when dom is ready
function myFunc() {
console.log("1");
setTimeout(function(){ myFunc(); }, 5000) // runs after every 5 seconds
}
});
您也可以使用setInterval()
。
$(function() {
function myFunc() {
console.log("1");
}
setInterval(myFunc,0);
});
答案 1 :(得分:1)
你写了IIFE(立即调用函数表达式),主函数只运行一次。 您需要使用setInterval调用内部函数,间隙为0毫秒。
$(function(){
function myFunc(){
console.log("1");
}
setInterval(myFunc,0);
});
答案 2 :(得分:1)
您的匿名函数(外部函数)在加载页面时运行。这会调用myFunc
,它会向控制台输出1,然后结束。如果你想循环,你可以尝试在myFunc
函数的末尾调用myFunc
,但如果你这样做,你会发现你的浏览器会挂起,最终你的内存不足。这是因为调用堆栈会增长和增长,从不允许UI响应,因为javascript完全可以控制!
或者,您可以在方法结束时使用setTimeout(myFunc, delay)
,在经过一定的毫秒后再次调用它。这不会填充调用堆栈并允许UI响应,但您必须指定间隔。
最后一种方法是在你的外体调用'myFunc()'的地方使用'setInterval(myFunc,delay)'。这会在每个'延迟'毫秒内重复调用你的函数。
答案 3 :(得分:1)
从评论中可以清楚地看出,您迫切需要一个响应式框架。
Bootstrap是最受欢迎的HTML,CSS和JS框架,用于在Web上开发响应式移动优先项目。
它消除了为移动设备和桌面设计/设计单独页面的需要。
只需浏览一组预定义的CSS类,就可以了。
无需为窗口大小调整编写复杂的逻辑以及所有......
希望它有所帮助。
答案 4 :(得分:1)
如果您只需要根据评论检查更改窗口大小,请尝试
$(function () {
$(window).resize(function () {
//insert code here
});
});
答案 5 :(得分:1)
@Vadim Tatarnikov尽快调用jquery使用的函数 window.setInterval()以最小时间间隔尝试以下代码
<script type="text/javascript" src="jquery.js"></script>//add your jquery script file
<script type="text/javascript">
$(document).ready(function(){
window.setInterval(function(){
myFunc();
},1);//here i put time interval=1 millisecond
});
function myFunc(){
console.log("1");
}
这将在每1毫秒运行一次调用myFunc()并查看控制台。
答案 6 :(得分:0)
你可以做:
while(1){
myFunc();
}
但首先解释一下你的要求。
答案 7 :(得分:0)
您的代码只运行一次(页面加载时)。如果您想以计算机可以处理的速度运行代码,请使用
while(true) {/Your Code here.../}或
var interval = setInterval(1, function() {/Your Code Here/});每0.001秒运行一次代码,
clearInterval(interval);停止代码运行。有关详细信息,请参阅this link。
答案 8 :(得分:-1)
如果您希望每次将函数放在setInterval
中,并且间隔为1ms
,则需要运行函数,但这不是推荐的方法。
$(function(){
setInterval(myFunc,1)
function myFunc(){
console.log("1");
}
});
你可以解释你的用例,或者你也可以尝试将你的函数调用包装在循环中。