`
WebAppTrend
  • 浏览: 54861 次
社区版块
存档分类
最新评论

响应式图像设计——Part 1

 
阅读更多

 

注:这篇文章发布于 September 27th, 2011 ,作者是  Jason Grigsby

在我上一篇的博文“什么是移动优先的响应式Web设计 ”中,我提到了一个用来判别一个响应式Web设计是否是“移动优先”的标准,即这个设计是否有处理IMG标签的策略。

最近在国外关于一个Web设计的网站Smashing Magazine上的一篇文章总结了一些响应式Web设计技术 ,其中包括几个处理IMG标签的新的方法。因此,现在非常适宜深入挖掘一下这个问题以及可能的一些解决方法了。

为什么 IMG 标签是响应式 Web 设计的关键

如果你想要你的站点尽可能快地加载,你会想要传送比实际需要更大的文件。很多响应式Web设计给移动设备提供的图像是适合于台式机的,然后再让移动设备去修改图像大小。

在我的研究中,我发现几乎传送到移动设备上的图像几乎需要减掉文件大小的80%才与实际需要相符

那么在响应式设计中,IMG元素有什么问题呢?不像CSS图片可以通过媒体查询语句为不同分辨率的屏幕提供不同的源文件,IMGs只有一个单独的源属性。

什么是响应式的图像

响应式的图像是使用HTML的IMG标签传送的图片,这些图片可以根据不同的屏幕大小而改变图片来源。可以有很多技术方法来实现响应式的图像设计。

就我所知,Scott Jehl第一个使用了响应式的图像 这个短语来描述图像来源问题的javascript解决方案。他最近 将响应式的图像定义为一个通用的术语,因此,我希望他不会介意我拓展了他对这个短语的定义,以便来描述在响应式设计中用来解决提供合适大小图像的问题的技术。

响应式的图像问题面临的挑战

有一些挑战是响应式的图像技术所普遍面临的。当我们来看已经提出的各种解决方案的时候,我们需要将这些问题记在脑海中。

最低标准:直接下载移动设备适用图像,无需多余下载

Scott Jehl为响应式图像设计提出了一个最小标准

  1. 直接就下载适用于移动设备的图像
  2. 升级到大的图像时无需下载两个图像

这两个都是必须要达到的目标。

第一次下载页面的问题

任何一个依赖于客户端脚本来决定应该提供哪一个图像源的解决方案都会遭遇第一次下载页面的问题。当用户第一次访问一个站点的时候,服务器端并不知道应该提供多大的图片。

 

来自于Bryan Rieger的 Muddling Through the Mobile Web  中的图像, 由 wscullin 摄影, 受 Creative Commons 保护.

如果加入了可以加载合适大小图片的javascript代码,那么第一次下载页面时相关信息就可以通过cookies以及类似技术从用户端获得。在理论上说,对于接下来的请求,服务器端都知道应该在IMG标签中包含什么样的图像大小了。

第一次加载速度是非常重要的。一个用户第一次体验到的速度价格会决定他们对一个产品或者公司的印象。Google、Yahoo以及其他的一些公司都说过很小的速度差异就会对用户使用产品造成很大区别。

竞争条件 (Rendering Race Conditions)

依赖于使用javascript调整图像来源属性的技术需要确保调整发生在图像请求开始之前。

浏览器开发者做了很多工作在来下载尽可能多的资源,这通常来说这是个好事。但是在响应式设计中,javascript代码需要在任何图像请求开始之前就解析出需要多大的图像。

很多早期的工作都是通过使用动态库标签(dynamic base tags)来做的。这在javascript代码是包含在head标签中时是很有效的,但是当使用外部javascript文件时就难以避免要下载两次图像。

几乎每一种客户端技术都需要对不同浏览器处理以及下载资源的命令有非常深刻的理解。或者更实际一点说,任何一种方法都要经过广泛测试。

内容分发网络以及缓存

当你通过同一个url分发相同大小文件时,你会碰到一个由CDN以及其他网络边缘的缓存引起的问题。如果第一个人是在手机上请求一幅图像,那么接下来的请求者就会看到在手机上显示最优的图片,即使他们试用的是台式机。如果想要避免这一点,就需要在策略中考虑CDNs。

未来友好的响应式图像

如果我们相信“将来会有很多我们不曾想象多的互联设备出现”,我们就需要考虑一下解决方案在未来友好 的。除了现在所做的实验之外,我们需要考虑一个可以长期使用的解决方案可能是什么样子的。

比如说,很多早期的响应式图像解决方案考虑了两种图像大小:一个用来提供给台式机,一个用来提供给手机。但是,这两种图像大小能满足正在到来的各种设备吗?

另外,现在的很多解决方案只是解决了这个问题的某一个方面。他们可能通过客户端的改变来改变图像来源,但是,这却给开发者留下了一个问题,即如何去处理图像大小的改变。对于共享库来说,限制范围可以解决这个问题。

但是在我们考虑未来系统要怎样才能成功时,我们需要考虑我们想要从服务器端和客户端想要获得什么。

下面是我认为一个能长期适用的技术需要考虑的一些事情:

  • 支持绝对图像大小的改变 ——我们不能预期到屏幕大小是多少。我们需要系统能自动处理图像大小改变,并且能支持特定页面的绝对大小改变
  • 手工设计可以覆盖自动的图像大小改变— —不是每一个图像都可以不失去图像含义而改变大小的。有时候对图像进行裁剪比改变它的大小会有更好的效果。自动化的工具需要支持人工覆盖。
  • 需要支持高分辨率显示— —当面对iPhone4以及其他一些有高分辨率屏幕的时候我们应该采用什么方案呢?我们要给处于一个低端连接的高分辨率机器提供高像素的图像吗?这是一个开放性的问题。

但是不论我们现在选择如何进行处理,很明确的一点就是屏幕分辨率会不断增加的趋势不会改变。至少,我们已经看到在台式机上会出现更高分辨率。

这意味着我们现在对大图像的定义对将来的设备来说可能太小了。如果记住这一点,可能需要系统能接受最高分辩率的图像——即使现在的设备并没有这样的分辨率——那么当新的有高分辨率的设备出现的时候,现有的技术才会适用。

 

 

  • 连接速度应该是标准中应该考虑到的 ——如果我们能知道网络连接的情况,我们就能更容易解决图像大小问题了。我们需要一种更简单的方式来获得这个信息。
  • IMG 标签可以被替换吗? ——所有的响应式图像解决方案都在试图处理现在的图像标签只有单一来源的问题。对于重新看待这个标签,已经有各种建议,看我们是否能找到一个长期的替换方案。

在Part 2中,我们将会对现有的响应式图像设计方案进行更详细的解析,看看哪一个是最有可能的。

 

 原文链接:Responsive IMGs — Part 1

 

译文来源:http://www.webapptrend.com/
 WebAppTrend是一个独立的技术博客,关注Web App前瞻和实践,以及智能浏览器发展 

请大家在关注ITeye的同时,关注我们的新浪微博 @WebAppTrend,关注我们的腾讯微博@WebAppTrend,欢迎加入我们的Q Q群:193775364
分享到:
评论

相关推荐

    jsp网络编程——多媒体文件(7)

    6. **响应式设计**:在处理多媒体文件时,需要考虑不同设备的屏幕尺寸和带宽限制。响应式设计能确保多媒体内容在各种设备上都能正确显示。 7. **多媒体库和框架**:Java有许多开源库,如Apache Commons IO和JavaFX...

    精通CSS--高级Web标准解决方案(part1)

    - `精通css_008.jpg` 和 `精通css_027.jpg` 可能介绍了如何使用CSS来处理和优化网页中的图像,包括响应式图像、背景图像和图片替换技术。 虽然没有提供书籍的具体文字内容,但从图片文件名可以推测,《精通CSS——...

    仅使用HTML-CSS-JavaScript-Part_two的响应式个人投资组合完整的网站

    在这个项目中,“仅使用HTML-CSS-JavaScript-Part_two的响应式个人投资组合完整的网站”是一个关于构建一个现代、动态且适应不同设备的个人投资组合网页的教程。这个项目重点在于利用三种基本的前端技术——HTML(超...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     12.4 添加事件——为人造select赋予生命   12.5 让表单绽放光彩   12.6 行为修正   12.6.1 z-index来救急   12.6.2 键盘控制及其他细节   12.6.3 select太大了吗   12.7 最后的细节   12.8 ...

    DiagramDesignerPart1_src

    《DiagramDesignerPart1_src——WPF中的图形设计与展示实践》 在软件开发领域,图形用户界面(GUI)的设计和实现对于提升用户体验至关重要。本文将深入探讨基于Windows Presentation Foundation(WPF)技术的 ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part2.rar

     12.4 添加事件——为人造select赋予生命   12.5 让表单绽放光彩   12.6 行为修正   12.6.1 z-index来救急   12.6.2 键盘控制及其他细节   12.6.3 select太大了吗   12.7 最后的细节   12.8 ...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part3.rar

     12.4 添加事件——为人造select赋予生命   12.5 让表单绽放光彩   12.6 行为修正   12.6.1 z-index来救急   12.6.2 键盘控制及其他细节   12.6.3 select太大了吗   12.7 最后的细节   12.8 ...

    Oragami-Website-Design-Part2

    在响应式设计方面,"Oragami-Website-Design-Part2"也充分利用了HTML5的媒体查询特性,确保在不同设备上都能呈现良好的折纸效果。通过调整元素的大小、位置和显示方式,确保网站在手机、平板和桌面电脑等不同屏幕...

    Apress.Pro.WPF.in.CSharp.2010.Mar.2010.part01

    这使得开发者可以按照设计原则,轻松地实现响应式和可扩展的用户界面。 除此之外,WPF还包含了强大的图形和媒体处理能力。利用矢量图形、图像和视频支持,开发者可以创建包含丰富多媒体内容的应用。同时,WPF的3D...

    Book_001_Edge_AI_課程_葵花寶典_ok8.pdf

    Part-1 什么是Edge AI? Edge AI的核心理念在于将AI计算能力下沉到设备的边缘,即终端设备本身,使得数据处理无需依赖云端。这种模式提高了系统的响应速度,降低了延迟,并减少了对云端带宽的需求。同时,结合联邦...

    begining iphone development

    3. 用户界面设计:使用Interface Builder创建故事板,理解Auto Layout进行动态布局,以及使用SwiftUI创建现代、响应式的界面。 4. 视图和控制器:了解UIViewController及其生命周期,以及如何使用UIImageView、...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对乱码产生过程的分析 612 21.2 中文乱码...

    3H7 MIPI 8.5X8.5 PLCC Data Shee

    1. **MIPI接口**:MIPI(Mobile Industry Processor Interface)是一种针对移动设备的标准化接口,主要用于手机和平板电脑等便携式电子设备。它能够提供高速数据传输速率,同时降低功耗和成本。该芯片支持MIPI接口,...

Global site tag (gtag.js) - Google Analytics