Require 加载 jquery -easyui 控件渲染问题
2015-03-11 20:27
357 查看
requireJS 可以让js加载起来比较优雅,像java里import一样。有了这个,我们可以创建自己的 js控件库,在需要时,页面中只引入 requireJS,然后通过代码方式引入需要用到的控件,比较方便。但RequireJS 引入 EasyUI 会遇到问题,原因是EasyUI 的代码编写没有考虑到文件将通过什么方式被加载,如果是通过<script src="..."></script> 方式,那么倒没有问题,但通过document.write 等方式动态加载时,就不行,原因是 EasyUI 代码的渲染代码写在了头部,各种定义部分写在了尾部,导致还没定义就先渲染,于是不会有效果。因为渲染部分是在document的ready事件中($(function(){$.parser.parse();}))完成的,所以使用<script>方式加载就不会有问题。
原因已经发现,那么如何解决呢,修改EAsyui的代码通常是不合情理的。我的方案是再次渲染。在自己的代码中加入定时器,定时扫描是否允许渲染,如允许,则执行渲染呢。
Js代码
//用于重复渲染页面
(function(){
var _9203 = setInterval(parse,10);
function parse(){
if($.parser && $.fn.slider && !window.renderedFlag){
clearInterval(_9203);
$.parser.parse();
window.renderedFlag = true;
}
}
})();
$.fn.slider是easyui 最后定义的控件,如果slider都定义好了,那么其它也都定义好了,那么既可以开始渲染了。加上renderedFlag 标记是为了防止在不同控件代码文件中发起多次渲染。由此此段代码可以防止到自己的多个依赖easyui的控件中。
原因已经发现,那么如何解决呢,修改EAsyui的代码通常是不合情理的。我的方案是再次渲染。在自己的代码中加入定时器,定时扫描是否允许渲染,如允许,则执行渲染呢。
Js代码
//用于重复渲染页面
(function(){
var _9203 = setInterval(parse,10);
function parse(){
if($.parser && $.fn.slider && !window.renderedFlag){
clearInterval(_9203);
$.parser.parse();
window.renderedFlag = true;
}
}
})();
$.fn.slider是easyui 最后定义的控件,如果slider都定义好了,那么其它也都定义好了,那么既可以开始渲染了。加上renderedFlag 标记是为了防止在不同控件代码文件中发起多次渲染。由此此段代码可以防止到自己的多个依赖easyui的控件中。
相关文章推荐
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- EasyUI tabs update 方法后控件无法渲染问题处理
- easyUI使用datagrid加载数据后,渲染表格中的控件
- jquery easyui easyloader加载外部js文件失败问题解决
- 加载easyui中tree控件405问题
- 在动态插入Easyui datebox控件时,使用$.parser.parse()手工渲染时,解决日期控件原有的值被清除问题
- EasyUI的treegrid组件动态加载数据问题的解决办法-jquery
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- 动态创建easyui控件的渲染问题
- jquery+easyui+window href加载页面,子页面JS失效问题
- jquery-easyui 后台加载数据的问题
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- jquery easyui window href加载页面,子页面JS失效问题
- easy-ui 关于用jquery渲染的加载问题
- 在编写动态插入删除DOM元素时,Easyui控件渲染效果失败的问题
- 解决easyui 控件datagrid 二次加载问题
- easyui datagrid 加载大量数据时,页面渲染速度慢问题
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- 解决 easyui 动态添加控件时无法渲染的问题
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法