首页  >  问答  >  正文

javascript - require.js引入模块和js按需加载

现在有一个需求,把头部的资源提出去比如css,js.现在是 用php模板引入的如下图

html_header.php


index.html


实际上php中的资源是不全的,而每个页面需要的资源也是不同的,有一些共性的需要提取出来。
目前的想法是用require.js 把共性的模块通过main.js引入,各个页面私有的模块现用现引入
在网上看了下require的用法在main.js中
require(["jq","react","vue"],function(a,b,c) {some code...})
在数组中引入模块 在回调中传入对应参数 开始写代码。可是这么写不是把所有的代码都写在main.js上了?
现在很多代码是直接写在页面上的 我只想引入模块,比如引入一个JQ 然后在页面上$(document).ready(function() {})

按领导的意思,最好是按需加载,比如把头部提出去,就像上面的php文件一样,把共性的css.js先写进去,然后可以接受参数,每个页面可以传递参数自定义所需要的资源,求各位大神指点实在不知道怎么做了

某草草某草草2657 天前847

全部回复(2)我来回复

  • 習慣沉默

    習慣沉默2017-06-12 09:34:34

    自定义开发的架构吗?PHP按需加载这种功能一般的CMS都有实现,如drupal, joomla。用到什么就在PHP加什么,然后PHP给页面用到的JS都合并压缩,下载容量就变得更少。如drupal7通过以下代码加载JS:

    drupal_add_js('misc/collapse.js');

    用require.js的确是需要把需要加载的JS都写在main.js上,你想每页加载的JS不同,那这个main.js用PHP生成就可以了。在magento2上也用了requireJS,它就是有自己的机制来生成requirejs config,实现每页都能按需加载。不过如果JS个数真的很多,还是把它们都合并压缩比较好,不然可能影响加载时间,还得配CDN来缓解。

    回复
    0
  • 学习ing

    学习ing2017-06-12 09:34:34

    requireJS现已经支持按需加载
    require(["xxxx"], function(xxx){

    var $= require("jquery");
    $(document).ready(function() {})

    })

    回复
    0
  • 取消回复