javascript的location.reload在函数内不会重复执行

JavaScript023

javascript的location.reload在函数内不会重复执行,第1张

我的大兄弟,你的reload会导致页面刷新,页面上所有的东西生命周期都会重来一次

你的shua函数自然也是

如果页面不刷新,调用某个函数的话,那么这个函数(也包括setInterval和settimeout)在它的生命周期当中都是存在的,所以会重复的调用,故改成下面这样 setInterval是有效果的:

function invoke(){

    alert("invoke")

}

function start(){

    setInterval(invoke,2000)

}

就像前面说的,当这个程序调用start正常运行的时候,你一刷新页面,那么这个循环调用的效果就没了,你必须调用一次start才可以正常循环触发,因为页面刷新,页面上所有的内容(DOM,JS,CSS)都会重新构造一遍

你的js是封装在js文件里还是写在jsp页面的script标签里?如果想每一个函数都执行,给你一个最简单的方法,你把js写在jsp页面的script里。并且每一个函数都写一个script标签,比如:

<script>

function aa(){

//我有错误

}

</script>

<script>

function bb(){

//我依然执行

}

</script>

这样写,互不影响。记得一定要写在jsp页面中。

方法有两中,一种是不用javascript改用java的servlet,修改其中的init方法(推荐)

但如果楼主一定要用javascript,可以使用cookie、session等,具体思路就是对行为作一个记录并存入cookie或session变量,每次刷新页面就读去这个变量,根据变量的值来判断某行为是否有被执行过