您的位置:首页技术文章
文章详情页

javascript - js异步加载与DOM的执行顺序,打包js。(不用gulp和webpack)

【字号: 日期:2023-04-20 09:20:59浏览:20作者:猪猪

问题描述

目的:

想要把,项目中所有页面通用的资源,例如:reset.css,jq-ui.css,jq.js等,全部打包在一个js里面,可以叫初始化js,以后新页面就可以只引用这个js即可。

现状:

index.html

<head> <link href = 'https://www.haobala.com/wenda/css/reset.css'> //所有页面通用 <link href = 'https://www.haobala.com/wenda/css/jq-ui.css'> //所有页面通用 <link href = 'https://www.haobala.com/wenda/css/index.css'> //单独这个页面的css<head><body> //页面代码…… //页面代码……</body><srcipt src='https://www.haobala.com/wenda/js/jq.js'></script> //所有页面通用<srcipt src='https://www.haobala.com/wenda/js/index.js'></script> //单独这个页面的js想要改成:index.html

<head><link href = 'https://www.haobala.com/wenda/css/index.css'> //只保留单独这个页面的css<head><body> //页面代码…… //页面代码……</body><srcipt src='https://www.haobala.com/wenda/js/init.js'></script> //想要封装好通用init的js,以后可以通用<srcipt src='https://www.haobala.com/wenda/js/index.js'></script> //只保留单独这个页面的jsinit.js

(function(){ var reset_css = document.createElement(’link’), jq_js = document.createElement(’script’); //加载通用的css reset_css.href = 'https://www.haobala.com/wenda/css/reset.css'; //加载通用的js jq_js.src = 'https://www.haobala.com/wenda/js/jq.js';}())问题:

页面资源加载顺序问题

其中reset.css必须在最开始加载。----实际情况,DOM渲染完了才加载的,没用了

jq.js,因为所有页面的js依赖jq,必须jq先加载完后,再加载页面的js。----实际情况,页面js先加载了,报错了。

求教:

如果想实现上述想要的结果,应该怎么写,能保证请求外部src,href资源按照想要的顺序加载呢?就是依赖的必须css,js必须在页面的js执行之前,加载完后再执行。

有查过文件监听事件、onload,但是我页面中通用的东西有点多,怎么样写保证全部初始化资源加载完后再去加载呢?

common_file1.onload = function(){ common_file2.onload = function(){common_file3.onload = function(){return}return }//再去加载每个页面中的单独需要资源吗? 这样写感觉好傻 /(ㄒoㄒ)/~~ }

问题解答

回答1:

不知道你打包是采用gulp还是webpack, 可以试着引入gulp-order类似的插件

回答2:

我大概记得就是按照顺序打包。就好了。

标签: JavaScript