BackboneJS如何在悬停时加载Spotify播放列表

Posted

技术标签:

【中文标题】BackboneJS如何在悬停时加载Spotify播放列表【英文标题】:BackboneJS How to load spotify playlists on hover 【发布时间】:2015-04-29 23:58:28 【问题描述】:

有没有办法只在悬停时加载嵌入式 Spotify iframe?

我有这个 Backbone 应用程序,其中我在 iframe 中嵌入了一堆播放列表,但页面非常缓慢和沉重,因为它一次加载所有播放列表。

我尝试添加lazysizes-plugin,但它似乎不起作用/帮助(速度保持不变)

所以,我的 html 看起来很简单:

<iframe class="lazyload playList" data-src=""   frameborder="0" allowtransparency="true"></iframe>

编辑

这是我的脚本

this.collection.each(function(spotify, index) 
    var service = spotify.get('services').spotify,
        s=service.match(/[^\/:]*$/);
        $('iframe.playList').eq(index+3).attr('data-src', 'https://embed.spotify.com/?uri=spotify:user:digster.dk:playlist:'+s);    
);

我在一个页面上一次最多有 16 个播放列表,所以 data-src 对于每个 iframe 当然是不同的

有人有什么想法或建议吗?

【问题讨论】:

你能给我举一个你尝试lazySizes的例子吗? (我是它的作者)。看看我能做什么是我的责任! (您是否也尝试过将lazySizes 扩展选项降低到10 之类的值?) 好吧,基本上我只是将 lazysizes-plugin 添加到 eh 页面(通过使用 RequireJS),然后将“lazyload”类添加到我的 iframe 中......但我几乎认为我没有t 与它有关,它更多的是 spotify API,例如spotilocal 导致页面变慢的问题... 【参考方案1】:

这就是我会做的:

http://jsfiddle.net/vjw7o9ha/

基本上,您创建所有不带src 的 iframe,然后在悬停时使用 jquery 设置源。

这只是一个示例,您可以从这里开始创建更好的代码。

【讨论】:

【参考方案2】:

直接在 iframe 上使用鼠标悬停可能会有问题,因为 iframe 是不同的文档。

如果你使用了lazySizes(我希望你没有添加类,但也将src更改为data-src)你可以尝试这样的事情:

    使用 data-src 添加 iframe,但没有 class="lazyload"

    在 domready 或更高版本的 window.onload 上添加类lazyload

    $(window).on('load', function() $('iframe[data-src]').addClass('lazyload'); );

【讨论】:

嗯有趣的方法,但它没有解决它...我会责怪 Spotify API :-)

以上是关于BackboneJS如何在悬停时加载Spotify播放列表的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 curl 加载 Spotify URL 时出现问题

如何在 BackBonejs 方法中调用 Objective-c 方法

如何自动播放 Spotify 播放列表 URI?

如何在悬停中使用velocity.js?

如何在悬停中使用velocity.js?

如何在 BackboneJS 应用程序中创建和打开警报对话框