目标页面,要加载页面左边栏树形菜单。
页面首次加载有时正常,多数情况不能正常加载,有时只加载DOM结构和样式,有时页面空白。
控制台报错:
Uncaught ReferenceError: jQuery is not defined ztreecore.js:1821
jQuery.Deferred exception: Cannot read property 'init' of undefined TypeError: Cannot read property 'init' of undefined lib/jquery-3.0.0.min.js:2
at HTMLDocument.<anonymous> (http://localhost:63342/myJs/104requiredemo%E5%88%B7%E6%96%B0%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/public/config.js:810:23)
at j (http://localhost:63342/myJs/104requiredemo%E5%88%B7%E6%96%B0%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/public/lib/jquery-3.0.0.min.js:2:29588)
at k (http://localhost:63342/myJs/104requiredemo%E5%88%B7%E6%96%B0%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/public/lib/jquery-3.0.0.min.js:2:29902) undefined
require配置部分
//config.js
require.config({
shim: { //怀疑插件不符合AMD规范 用shim 处理了,还是有问题
'easyuimin': {
deps: ['jquery'],
},
'ztreecore': {
deps: ['jquery'],
},
'domReady': { //查到一个requirejs插件 下载文件 引入了,还是有问题
deps: ['jquery'],
}
},
paths:{
"jquery":"lib/jquery-3.0.0.min",
"a":"lib/easyuimin",
//"b":"lib/easyuilangzhCN",
"c":"lib/ztreecore",
'domReady':"lib/domReady"
}
});
require(["domReady","jquery",'a','c'],function(domReady,$,a,c){}
html页面
<script src="require.js" defer async="true" data-main="config" ></script>
//让require 也异步加载 且放在了网页底部 还是不行
代码部分
//尝试了将require回调函数中所有代码写入 $(document).ready(function()) 还是不行
请教下问题出在哪里,能正常显示但是不稳定????
这样
<script src="require.js" data-main="config" ></script>
下面写
<script>
require(["domReady","jquery",'a','c'],function(domReady,$,a,c){
在这个时候。所有的内容才加载好。才能使用"domReady","jquery",'a','c'
})
</script>
你的逻辑代码是在哪儿写的?
另外,看F12的网络请求顺序,来分析该问题。
问题解决了,在引入requirejs 脚本之前引入jquery(require里面已经包含了,这个属于重复引用了)的前提下,在main.js 的依赖关系中也要把jquery放在第一个!!!
require(["jquery","domReady",'a','c'],function(domReady,$,a,c){ //功能代码 }
现在首次加载稳定,刷新也稳定了,只是不知道是不是require用的不对,require不就是解决js脚本加载顺序及依赖关系的问题的吗?????????????