如果访问者有移动设备,则阻止从站点加载图像.意见
Prevent load images from the site if the visitor has a mobile device... Opinions?
我正在使用媒体查询,但不幸的是,它们不如专门用于移动设备的简单"整体"版本,用于确定用户代理(如Google,Facebook和其他网站)。我不想做一个特殊的版本,因为我已经将整个网站翻译成媒体查询。最重要的是,这种方法在加载页面重量方面没有灵活性,这对于手机用户至关重要(在我国,移动互联网仍然非常高价+图像降低性能)。我已经成熟了使用 Javascript 的想法,这将阻止浏览器以特定规则(例如屏幕分辨率)加载图像。您认为 - 实际上已经实现,并且可能已经实施?我知道该网站被很多聪明的人访问,我真的很想听听你在这方面的宝贵经验!
对不起,英语不好。
更新:阻止加载图像
这个问题有许多可能的解决方案。我将在下面列出常见的三个。
一个只有CSS的解决方案,一个javascript解决方案,一个HTML5解决方案,如果你不关心旧的浏览器:
.CSS
我建议将图像移动到样式标签中,并使用媒体查询来显示适当的图像:
<style>
/* mobile first */
.img {
display:none;
}
/* tablet */
@media (min-width:600px) {
.img {
background:url('/path/to/image-tablet.png') no-repeat scroll 0 0 transparent;
}
}
/* desktop */
@media (min-width:1280px) {
.img {
background:url('/path/to/image-large.png') no-repeat scroll 0 0 transparent;
}
}
</style>
<div class="img"></div>
假设这是一个动态网页,您将在带有style
标签的页面中包含 css,而不是在 css 文件中。
HTML5
如果你不担心完整的浏览器覆盖(canIuse),你也可以使用新的HTML5 picture
元素:
<picture>
<source
media="(min-width: 1280px)"
srcset="/path/to/image-large.png">
<source
media="(min-width: 600px)"
srcset="/path/to/image-tablet.png">
<img src="/path/to/image-mobile.png" /> <!-- a 1x1 empty pixel -->
</picture>
在此示例中,移动浏览器和不支持它的浏览器将加载 img
标记。其他浏览器将为媒体查询加载相应的图像。
如果您喜欢此解决方案,但也希望它在较旧的浏览器上运行,则可以找到一些JS脚本,如果浏览器不支持该功能,则可以找到这些脚本来实现该功能。
爪哇语
这种方法对我来说是最笨拙的,但这只是我的意见。它具有非常大的浏览器覆盖范围,IE从10开始支持此方法。
创建不带 src
属性的映像标记,并将映像大小版本版本作为data
属性:
<img data-tablet="/path/to/tablet.png" data-desktop="/path/to/large.png" />
<script>
var $el = jQuery('img');
if(window.matchMedia("(min-width: 600px)").matches) {
$el.attr('src', $el.data('tablet'));
}
if(window.matchMedia("(min-width: 1280px)").matches) {
$el.attr('src', $el.data('desktop'));
}
</script>
我已经使用jQuery来演示,但其中重要的部分是window.matchMedia
。这将执行类似检查的媒体查询并返回布尔值。
- Cordova/Phonegap在主要的Cordova网络视图中加载外部站点
- 在WordPress站点中加载jquery.js后加载javascript代码
- MVC3站点脚本和CSS未加载
- Jquery无休止滚动加载来自其他站点的内容
- 从站点根目录之外的目录动态加载图片
- 如何防止/延迟一堆 Bootstrap 模块立即加载其内容以防止站点加载时间缓慢
- HTTPS 站点:通过 HTTP 加载外部 CSS
- 仅在第一页上使用 pace.js(初始站点加载)
- 无法从 OpenLayers 3 站点使用 WFS 示例作为基础加载另一个 WFS
- 如果访问者有移动设备,则阻止从站点加载图像.意见
- 正在将部分站点加载到iframe中
- 使用javascript从另一个站点加载图像
- 使用PHP跨站点加载HTML内容
- 通过性能api测量站点加载时间
- 使用ajax从在线站点加载json
- 是否有一种方法可以创建从另一个站点加载源的SharedWorker
- OpenLayers从其他站点加载GML文件
- 在站点加载上运行 JavaScript
- 在所有站点加载javascript,除了两个页面
- 固定站点加载时间