在项目中遇到一个问题,ajax请求音频资源,然后动态的插入到文档中,其中。原生的音频外观实在太丑了,而且每个浏览器的样式都不一样,采取了一个audio插件。

就遇到一个问题,请求后的直接调用插件的话,资源还没有被加载,无法获取音频的总长度,所以调用后时间会显示nun;

处理的思路就是--等待音频资源加载完成后执行插件调用函数

<---图片资源-->
function loadSprites(src) {
var deferred = $.Deferred();
var sprite = new Image();
sprite.onload = function() {
deferred.resolve();
};
sprite.src = src;
return deferred.promise();
}
<--音频资源-->
function loadAudios(src) {
var deferred = $.Deferred();
var audio = new Audio(src);
audio.onloadedmetadata = function() {
deferred.resolve();
};
audio.src = src;
return deferred.promise();
} //怎么用
var loaders = [];
loaders.push(loadSprites(img1Url));
loaders.push(loadAudios(audioUrl));
$.when.apply(null, loaders).done(function() {
$('#img1').attr("src",img1Url);
$('#music').attr("src",audioUrl);
});

这种的方法是判断文档加载完成,加载完成执行函数

document.onreadystatechange = showAudiodata;
 function showAudiodata(){
  if(document.readyState == "complete") {//当页面加载状态
  $('audio').css('visibility','visible');
  $('audio').mediaelementplayer({
    features: ['playpause','progress','duration'],
    audioWidth: 160,
    audioHeight: 30
  });
 }
}

图片,音频资源预加载和文档dom加载的更多相关文章

  1. (js有关图片加载问题)dom加载完和onload事件

    引用旺旺的话...哈哈哈DOMContentLoaded事件表示页面的DOM结构绘制完成了,这时候外部资源(带src属性的)还没有加载完.而onload事件是等外部资源都加载完了就触发的.$.read ...

  2. 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed

    这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规 ...

  3. Unity3d外部加载音频,视频,图片等资源 及根据路径获取制定格式的文件

    1.根据路径获取制定文件类型的文件: 这里写一个类,调用了打开路径的方法:using UnityEngine;using System;using System.Collections.Generic ...

  4. HTML5的页面资源预加载技术(Link prefetch)加速页面加载

    不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...

  5. 页面资源预加载(Link prefetch)功能加速你的页面加载速度

    有了浏览器缓存,为何还需要预加载? 用户可能是第一次访问网站,此时还无缓存 用户可能清空了缓存 缓存可能已经过期,资源将重新加载 用户访问的缓存文件可能不是最新的,需要重新加载 页面资源预加载/预读取 ...

  6. 使用HTML5的页面资源预加载(Link prefetch)功能加速你的页面加载速度

    不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...

  7. 关于cocos2d-x 与 cocos2d-html5 资源预加载的思考

    移动端资源预加载,可以做到需要加载的时候,从本地磁盘加载到内存,当纹理不需要的时候,都是强制清理内存里的纹理占用: cc.TextureCache.getInstance().removeAllTex ...

  8. 资源预加载 Preload

    当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载 是另一个性能 ...

  9. 《前端之路》之 前端图片 类型 & 优化 & 预加载 & 懒加载 & 骨架屏

    目录 09: 前端图片 类型 & 优化 & 预加载 & 懒加载 & 骨架屏 09: 前端图片 类型 & 优化 & 预加载 & 懒加载 & ...

随机推荐

  1. Redmine(Ruby)配置经验

    Redmine(Ruby)配置经验记录在配置Redmine邮件同步过程中遇到的各种问题与解决方法 1. 如何安装Redminehttp://www.redmine.org/projects/redmi ...

  2. vi/vim多行注释和取消注释

    多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例如// 3. 按esc键 ...

  3. 基于.NET的微信SDK

    超级懒汉编写的基于.NET的微信SDK   一.前言 特别不喜欢麻烦的一个人,最近碰到了微信开发.下载下来了一些其他人写的微信开发“框架”,但是被恶心到了,实现的太臃肿啦. 最不喜欢的就是把微信返回的 ...

  4. Asp.net MVC4.0(net4.5) 部署到window server 2003上的解决方案

    Asp.net MVC4.0(net4.5) 部署到window server 2003上的解决方案 最近做了一个Web项目,也没多想就用了Asp.net MVC4.0 ,MVC4.0默认的目标fra ...

  5. Algorithm lecture

    当前标签: lecture   组合数求法讲解 BLADEVIL 2014-01-08 18:59 阅读:3 评论:0     mobius反演讲解 BLADEVIL 2014-01-08 18:13 ...

  6. U盘安装Win7

    声明:本方法仅仅适用于windows 7 的安装. 工具准备: 1.网上下载一个windows 7 系统.最好是纯净版的,非Gost 版.虽然装机慢了一些,但到用时就体会到他的流畅. 2.Window ...

  7. 【hanoi】hanoi移动次数和移动步骤

    #include<stdio.h> #include<stdlib.h> //移动次数 int hanoi(int num) { ; ) { ; } else { all = ...

  8. ssdt_hook NtOpenProcess

        获取ssdt表中所有函数的地址 for (int i = 0; i < KeServiceDescriptorTable->NumberOfServices; i++) {     ...

  9. 应用程序入口 WSGIHandler

    Django 源码小剖: 应用程序入口 WSGIHandler WSGI 有三个部分, 分别为服务器(server), 应用程序(application) 和中间件(middleware). 已经知道 ...

  10. 增加窗体边框3D效果

    /// <summary> /// 增加窗体边框3D效果 /// </summary> /// <param name="e"></par ...