html5boiler plate + jquery mobile =脚本加载两次
我正在研究一个基于实验jquery移动的应用程序,使用html5样板作为html等的基础。
基本上我到目前为止所做的就是:
- 下载并解压缩html5样板,并在浏览器中查看。 确保脚本/样式正确加载。 好准备好了。
- 添加jquery mobile(cdn托管完整版1.0 [今天发布?正确!])
- 添加
$(document).ready(function () { console.log('ready'); });
- 刷新。 ‘ready’输出两次..第二个稍微延迟后输出..
- wtf烧烤和铬检查员的这种检查情况..通知所有的javascript文件似乎加载两次。
- 从头开始重新启动,在浏览器中提取h5bp加载,特别注意脚本加载一次。 添加文档就绪处理程序,观察一个’ready’输出。
- 加载jquery mobile observe脚本加载一次。
- 将所有脚本移动到标记中。 脚本加载一次。
任何人都知道发生了什么事吗? 重现这一点应该很容易,只需提取h5bp并将jquery mobile添加到底部的脚本部分,然后突然脚本全部加载两次。 将所有这些脚本移动到modernizr下面(或之前)的head标签中,这不再发生。
谢谢
Modernizr使用YepNope加载脚本。 如果您在这里查看问题: https : //github.com/SlexAxton/yepnope.js/issues/10
你会看到脚本有意加载两次:
Yepnope确实要求你输入的每个文件两次。 它第一次将自身加载到缓存中作为某种非可执行实体(对象元素,或img元素,或具有伪类型属性的脚本元素,具体取决于您的浏览器)。 第二次注入时,我们将其作为可执行脚本注入,这次它被缓存了。 因此,实际上只需要毫秒或更少的时间来执行回调函数并重新注入脚本标记(无论访问缓存需要多长时间)。
在http://yepnopejs.com主页上也提到了这一点。 只是去那里向下滚动到I'm seeing two requests in my dev tools, why is it loading everything twice?
将放在
中将解决此问题。
你在用$(document).ready()??
进入同样的问题并且感到沮丧到没有尽头,注意到如果我将所有JS移动到文档的头部它工作正常。 当我将所有东西都切换到使用时,pageinit开始在它所属的页面底部与JS正常工作。
例:
有关详细信息,请访问: http : //jquerymobile.com/demos/1.0/docs/api/events.html
我尝试在基本的html页面上添加jQuery和jQuery Mobile,它似乎也是这样。 所以不要认为它与h5bp有关。 你能尝试去掉h5bp的东西并重新加载吗?
确保你的root div是这样的……