前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >按需加载js和css

按需加载js和css

作者头像
zgq354
发布于 2019-11-24 10:30:20
发布于 2019-11-24 10:30:20
3K014
代码可运行
举报
文章被收录于专栏:0x00010x0001
运行总次数:14
代码可运行

博客上有一个用mediaelement-and-player.js弄的播放器,插件默认的是每个页面都加载一次mediaelement-and-player.min.js和mediaelementplayer.min.css,两个文件都十分的庞大,加起来接近100k,虽然gzip之后只剩下20多k但是也是十分地不爽,所以我便寻思着有没有什么办法能有播放器的时候就加载它,没有播放器的时候就不加载。

首先往后端的方向去想,由于不知道typecho的js是怎么管理的,似乎在插件的激活方法中就开始往模板输出js和css了,我要的是在分析文章的过程中决定要不要输出那个js,所以要从后端来着手去搞的话难度很大。可能还会影响到整个程序的性能。

于是我往前端去思考,我们都知道html网页都是由dom组成的,假如我们判断到可以加载播放器的时候再让它document.write()出那个代码同也就能实现这个功能,而且对后端没什么影响。

基本思路:header部分声明一个默认为false的变量,当网页中有播放器时候把它赋值为true,底部根据这个变量的值来决定是否输出播放器的js和css。

实现的方法其实很简单,首先我们可以在页面顶部header部分声明一个默认为false的变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>var loadplayer=false;</script>

然后在插入播放器的部分把这个变量设置为true,以便后面的判断:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>loadplayer=true;</script>

在页面底部判断并输出代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    if(loadplayer){
        document.write('<link rel="stylesheet" type="text/css" href="http://blog.izgq.net/usr/plugins/Html5AudioPlayer/assets/mediaelementplayer.min.css">');
        document.write('<script type="text/javascript" src="http://blog.izgq.net/usr/plugins/Html5AudioPlayer/assets/mediaelement-and-player.min.js"><\/script>');
        document.write('<script>$("audio").mediaelementplayer();<\/script>');
    }
</script>

用php输出代码的时候要注意转义的问题。

这样那些用不上的js就不会加载啦,网页加载速度也会快不少。

不知道css放在页面底部会不会有什么副作用,目前还没遇到什么问题,望大神指点迷津。

不过我觉得这种方式应该是最愚蠢的╮(╯▽╰)╭

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
H5的音视频播放器 —— MediaElement.js
首先,只需嵌入<audio>标签或<video>标签就可以实现媒体播放器。但是这样在不同浏览器下呈现的效果会有差异,为了让每个浏览器下都有一致的效果,我们选择了MediaElement.js
崔哥
2022/06/12
3.1K0
【干货】将Vue组件库更换为按需加载
我司前端团队拥有一套支撑公司业务系统的UI组件库,经过多次迭代后,组件库体积非常庞大。
前端老道
2022/03/29
1.4K0
【干货】将Vue组件库更换为按需加载
❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)❤️
在我们开始编写代码之前。虽然它不是 Nodejs 应用程序,但我们至少应该看到它的文件夹结构。
海拥
2021/09/22
8.7K0
❤️使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)❤️
Vue 折腾记 - (13) Nuxt.js写一个常规音频的播放组件,动态注入微信,新浪微博的js-sdk
全部耦合到组件内,虽然可以正常播放(包括微信和微博) 且不是单例模式,对于多音频页面,有毒
CRPER
2018/08/28
4.1K0
Vue 折腾记 - (13) Nuxt.js写一个常规音频的播放组件,动态注入微信,新浪微博的js-sdk
hexo-tag-aplayer使用方法
当开启 Hexo 的 文章资源文件夹 功能时,可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中,然后直接引用:
用户6808043
2022/02/25
2.1K0
嵌入在网站上Flash播放机(2)
然后在一个博客。这里有一个flash嵌入式播放器。这是公司内部使用的flash播放机,支持格更多款式,同时支持swf格视频播放的类型。
全栈程序员站长
2022/07/06
9690
引入Aplayer播放音乐(踩坑向)
看到大佬们的网页可以播放音乐,不得不说我是有点心动的,所以就在这里放一下教程。写这个的时候我也在一边试着安装,算是先驱者。 有两种方式,一种是安装源文件支持,在所有的网页输出上放置播放器,这样你哪个网页都可以看到它。 还有一种是安装插件,这个可以在文章中自定义样式,如此一来,只有当你点开文章的时候才能看到它。 我个人比较倾向于第二种,但这里我都会说,事实上引用的不是同一个js的情况下,貌似也不冲突吧。 (穿越回来的我:事实上体质特殊就是体质特殊,各种无效很无奈。)
Akilar
2021/06/11
4K0
网站通过代码引入Aplayer音乐播放器,无需插件
前几篇文章写了WordPress通过Hermit X插件引入网易云等音乐,但在我实际使用中发现了一些小bug已经影响到了深白站的日常使用,所以不得不放弃通过插件引入的方法。这里推荐直接用插件引入,毕竟方便省力,具体可以看我上上篇文章。
深白鸭
2023/02/22
6.6K6
网站通过代码引入Aplayer音乐播放器,无需插件
基于Web的商城后台管理系统的设计与实现
✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (1000套) 】 🧡 程序员有趣的告白方式:【💌HTML七夕情人节表白网页制作 (110套) 】 🌎超炫酷的Echarts大屏可视化源码:【🔰 echarts大屏展示大数据平台可视化(150套) 】 🎁 免费且实用的WEB前端学习指南: 【📂web前端零基础到高级学习视频教程 120G干货分享】 🥇 关于作者: 历任研发工程师,
IT司马青衫
2022/08/17
1.8K0
基于Web的商城后台管理系统的设计与实现
vue.config.js的优化配置(element-ui, echarts, lodash按需加载 )
“关注 前端开发社区 ,回复“ 1” 即可加入 前端技术交流群,回复 “ 2” 即可免费领取500G前端干货!
前端老道
2020/09/11
8.5K0
vue.config.js的优化配置(element-ui, echarts, lodash按需加载 )
基于H5+js开发一款音乐播放器
前言:当下音乐播放器不胜其数,为了更好的掌握一些东西,我们来自己制作一个音乐播放器。
全栈程序员站长
2022/09/07
4.2K0
基于H5+js开发一款音乐播放器
webpack异步加载_webpack配置按需加载
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
1.2K0
用 Nuxt.js 搭建一个服务端渲染(SSR)应用
客户端渲染模式下,服务端把渲染的静态文件给到客户端,客户端拿到服务端发送过来的文件自己跑一遍 JS,根据 JS运行结果,生成相应 DOM,然后渲染给用户。
用户4456933
2021/06/01
8K0
用 Nuxt.js 搭建一个服务端渲染(SSR)应用
WordPress 添加音乐盒
米扑博客,早在2013年就添加过音乐盒,当时用的豆瓣音乐,后来豆瓣音乐下架了,米扑博客的音乐盒也跟着下架了... 2017.10.24 程序员节,米扑博客重新整理上架了新的音乐盒,聚合了QQ、百度、网易、虾米四大音乐盒,再也不用担心音乐盒下架了  原文请见米扑博客:WordPress 添加音乐盒 米扑音乐盒之赏析:https://blog.mimvp.com/music 0. 回顾下架的豆瓣音乐 <iframe frameborder="0" height="186" name="iframe_canvas
阳光岛主
2018/05/17
2K0
EasyNVR、EasyDSS二次开发---RTMP、HLS流在web页面进行无插件播放(demo)
对于EasyNVR和EasyDSS的使用方式大概分为两大类,一类是直接将软件作为视频能力平台来进行使用;另一类就是将视频能力集成到自身的业务系统来,这就涉及到相关的接口调用和一些对应的功能的集成。对与前端的web播放器的集成也是一个 需要注意的方向;通常也有很多客户会咨询到关于web播放器集成的相关问题,本篇博客也是对应web流媒体播放器的demo介绍。
EasyNVR
2020/04/23
1.9K0
EasyNVR、EasyDSS二次开发---RTMP、HLS流在web页面进行无插件播放(demo)
如何使用H265视频播放器EasyPlayer.JS调用videojs播放EasyNVR转发的视频流?
经过了多年的研发探索,TSINGSEE青犀视频团队开发了三种不同的视频流媒体服务器软件EasyNVR,EasyGBS,EasyDSS,三个平台都可以进行网页无插件直播,有很好的的稳定性和可靠性,同时我们也有自己的网页播放器EasyPlayer.js ,能够很好集成在页面内。
EasyNVR
2021/01/04
6.4K0
如何使用H265视频播放器EasyPlayer.JS调用videojs播放EasyNVR转发的视频流?
【说站】自动旋转圆形光盘样式播放器代码
本文编程笔记首发 好看不错的音乐播放器代码,复制代码到网站需要显示的地方即可。 <script> // 配置信息 非必须 任何页面只需加载所需的 JS CSS 即可使用本播放器 var JA_PLAYER_PHP_CONFIG = { // 网易 音乐 用户 ID user_id: 12898846 // 手机下是否加载播放器 应对 USER_AGENT 劫持 , loadPlayerForMobile: true // 音量 , volume: .3 // 自动播放
很酷的站长
2022/11/28
6530
【说站】自动旋转圆形光盘样式播放器代码
如何开发一款 H5 小程序直播?
大前端这几年算是一个热词,对于前段来说如果不是大前端,技术相对来说就已经算是落后了。如果还停留在对ES6,Vue这些基本技能的学习只能说处于一个及格线。
Nealyang
2021/01/14
3.8K0
如何开发一款 H5 小程序直播?
JS完美收官之——js加载时间线
浏览器在开始运行一个页面的时候,首先它会初始化js功能,当js发挥它的功能时候,记录了一系列浏览器按照顺序做的事情,也就是一个执行顺序,谁在谁之前发生,谁在谁之后发生。
程序员法医
2022/08/11
1.4K0
JS完美收官之——js加载时间线
Memos API 调用渲染页面
*更新:已把 Memos 剥离出一个完整的应用,可独立部署,到 eallion/memos.top 这个仓库下载部署到网站根目录即可。 *HUGO:如果使用的是 Hugo 博客框架,可以参考本站的方法:layouts/_default/memos.html
eallion
2023/03/07
3.5K0
推荐阅读
相关推荐
H5的音视频播放器 —— MediaElement.js
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验