Commit da06c819 authored by Dan Poltawski's avatar Dan Poltawski Committed by Marina Glancy
Browse files

MDL-57608 media_videojs: lazily load videojs on demand

The videojs javascript is over 1MB of javascript which we don't need to
load on every page, now that we only require it demand, the js can be
lazily loaded when its needed, which keeps the first.js smaller and more
likely to stay in browser cache.
parent 65b593a9
......@@ -56,8 +56,8 @@ lib/amd/src/chartjs-lazy.js
lib/maxmind/GeoIp2/
lib/maxmind/MaxMind/
lib/ltiprovider/
media/player/videojs/amd/src/video.js
media/player/videojs/amd/src/Youtube.js
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
mod/assign/feedback/editpdf/fpdi/
repository/s3/S3.php
......
......@@ -57,8 +57,8 @@ lib/amd/src/chartjs-lazy.js
lib/maxmind/GeoIp2/
lib/maxmind/MaxMind/
lib/ltiprovider/
media/player/videojs/amd/src/video.js
media/player/videojs/amd/src/Youtube.js
media/player/videojs/amd/src/video-lazy.js
media/player/videojs/amd/src/Youtube-lazy.js
media/player/videojs/videojs/
mod/assign/feedback/editpdf/fpdi/
repository/s3/S3.php
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
......@@ -24,7 +24,7 @@ THE SOFTWARE. */
if(typeof exports==='object' && typeof module!=='undefined') {
module.exports = factory(require('video.js'));
} else if(typeof define === 'function' && define.amd) {
define(['media_videojs/video'], function(videojs){
define(['media_videojs/video-lazy'], function(videojs){
return (root.Youtube = factory(videojs));
});
} else {
......
......@@ -63,11 +63,11 @@ define(['jquery', 'core/event'], function($, Event) {
.find('audio, video').each(function() {
var id = $(this).attr('id'),
config = $(this).data('setup'),
modules = ['media_videojs/video'];
modules = ['media_videojs/video-lazy'];
if (config.techOrder && config.techOrder.indexOf('youtube') !== -1) {
// Add YouTube to the list of modules we require.
modules.push('media_videojs/Youtube');
modules.push('media_videojs/Youtube-lazy');
}
require(modules, function(videojs) {
if (onload) {
......
......@@ -5,7 +5,7 @@ https://github.com/videojs/video.js
Instructions to import VideoJS player into Moodle:
1. Download the latest release from https://github.com/videojs/video.js/releases in a separate directory
2. copy 'dist/video.js' into 'amd/src/video.js'
2. copy 'dist/video.js' into 'amd/src/video-lazy.js'
3. copy 'dist/font/' into 'fonts/' folder
4. copy 'dist/video-js.css' into 'styles.css'
Replace
......@@ -21,8 +21,8 @@ Instructions to import VideoJS player into Moodle:
Import plugins:
1. Copy https://github.com/videojs/videojs-youtube/blob/master/dist/Youtube.js into 'amd/src/Youtube.js'
1. Copy https://github.com/videojs/videojs-youtube/blob/master/dist/Youtube.js into 'amd/src/Youtube-lazy.js'
In the beginning of the js file replace
define(['videojs']
with
define(['media_videojs/video']
define(['media_videojs/video-lazy']
<?xml version="1.0"?>
<libraries>
<library>
<location>amd/src/video.js</location>
<location>amd/src/video-lazy.js</location>
<name>VideoJS</name>
<license>Apache</license>
<version>5.12.6</version>
<licenseversion></licenseversion>
</library>
<library>
<location>amd/src/Youtube.js</location>
<location>amd/src/Youtube-lazy.js</location>
<name>YouTube Playback Technology for Video.js</name>
<license>MIT</license>
<version>2.1.1</version>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment