在函数

时间:2015-10-18 04:32:41

标签: javascript jquery

我有以下JS代码,它检查网页以查看是否定期发布新密钥。现在的问题是:

  • 从开发者控制台(F12)直接调用start()时,结果是正确的,当我的函数$(document).ready调用它时结果是错误的,是的我有100次确认页面上的内容没有变化。

  • 我很想知道vars是否不同步,所以我在start()中调用了$(document).ready 2次,但是当我调用{{1}时仍然是错误的结果来自F12(从satrt()调用20次之后,我得到了正确的结果。

  • 我已经确认所有事件都在等待finsih(可能称为$(document).ready),并且不是任何单个语句在不同的线程中运行。

然后,如果synchronous调用它,那么它是如何可能的,那么它是正确的,如果F12调用它那就错了。

需要注意的有趣点:

当我的代码中没有$(document).ready时,我从$(document).ready调用了wow(),这也给了我错误的结果,但F12给出了正确的结果。 现在我有start(),如果我从中调用$(document).ready来调用start()会给我错误的结果,但现在如果我从我的控制台调用wow(),它会给我正确的结果!

我想以更简单的形式做什么:

  1. 等待页面完成加载
  2. 致电start()
  3. 等待wow()完成
  4. 重新加载页面
  5. 相同的过程在无限循环中继续。

    谦虚感谢您的帮助,这已经耗费了大约5-6个小时的时间!

    JS代码:http://pastebin.com/9UJYdepU

    编辑:

    正确输出:

    wow()

    输出错误:

    a.js:136 Started
    a.js:33 Called Wow
    a.js:83 ---------------------KEY 7.0----------------
    a.js:83 ---------------------KEY 7.1----------------
    a.js:83 ---------------------KEY 7.2----------------
    a.js:102 LAST used keys : Saab,Volvo,BMW,4E69G-8GNG4-JCZ4Z,H63HQ-VHWPX-ZCJ8J,FKZGK-MXL5C-P2YTE,4E69G-xxxxxx-JCZ4Z,4E69G-AAAxx-JCZ4Z,4E69G-AAAxx-JasasCZ4Z,4E69G-AAAxx-JasaaaasCZ4Z
    a.js:140 WOWO DONW
    

    Started a.js:33 Called Wow a.js:102 LAST used keys : Saab,Volvo,BMW,4E69G-8GNG4-JCZ4Z,H63HQ-VHWPX-ZCJ8J,FKZGK-MXL5C-P2YTE,4E69G-xxxxxx-JCZ4Z,4E69G-AAAxx-JCZ4Z,4E69G-AAAxx-JasasCZ4Z,4E69G-AAAxx-JasaaaasCZ4Z a.js:140 WOWO DONW 给出:http://pastebin.com/JXQ9483N  document.getElementsByTagName("p");提供localStorage.getItem("usedp")

1 个答案:

答案 0 :(得分:0)

最后我解决了!这都是因为邪恶的Jquery(对不起,如果我伤害了你)。

$(document).ready在页面开始加载时触发,而不是在finsihed加载时,我的替代解决方案是:

var myVar = setInterval(function(){ chk() }, 500);
function chk(){

if(document.readyState=="complete"){
        clearInterval(myVar);

    startt();


}
}