RequireJS 加载 easyui

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的控件中。

 

转载于:https://www.cnblogs.com/wujindong/p/5762712.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值