我觉得我在这个项目里遇到了太多的第一次。比如上一篇博文:在在360、UC等浏览器,img不加载原因

当前情况是:图片加载缓慢,图片加载时出现卡顿。

上图:我缩放了图片,估计有点变形。能说明情况就行,粗糙点就粗糙点吧。

1.单张图片加载情况:

加载完:

2.banner图加载情况

情况说明

banner有3张图,加载的时候就分了三层。发现这个情况的时候,我表示自己很萌萌哒。

寻找原因及解决办法

1.图片css样式和轮播图js影响了图片的加载

初始情况下,我猜测是我的css样式没有写好,可能js轮播也有问题。但是我在本地服务器上访问的时候,一切很正常。于是我排除了写的js的问题。着重于检查css。

我使用图片本身属性‘width’、‘height’来写图片的宽高,并将规定图片宽高的css样式注释掉。清除浏览器缓存并刷新网页,图片加载卡顿的现象并没有改善。

目前,暂时排除掉这个原因。

原谅此时的我大写的懵逼脸

2.前端页面卡顿?或者DOM操作惹的祸,需优化代码。

这是我百度到的一篇文章。文章地址:http://developer.51cto.com/art/201504/473422.htm

由于有些图片比较大,我用js控制图片根据框的大小等比例缩放显示在框内。当然这个功能与banner无关,但是我还是担心是我js的影响。

于是我注释了这个js并清除掉浏览器缓存后,刷新页面,加载还是一样的慢,可见不是我这个js的锅。

3.图片过大,导致加载时间过长,以致出现图片加载出现卡顿的现象。

以上两个方法都没有找到问题的原因所在。我仔细看了页面图片的加载情况,请求数量不算多,但是每张图片请求成功加载出来花费的时间很长,有的甚至需要2、3s多。

我再去查看了淘宝、京东的图片加载情况,很快,都是毫秒,就没有上秒的。

我将淘宝的图片从banner到商品图,各下载几张,发现图片大小最大的也就只有几百K。

再看看我方官网上的图片,都是几M的,甚至有几十M的。

据此,我猜测是因为图片过大,导致加载时间过长,以致出现图片加载出现卡顿的现象。

由于图片已经上传到服务器,几千张图片,不可能让柜台工作人员重新上传。所以我从服务器上将图片下载到本地,进行手动压缩=-=

将几M甚至几十M的图片压缩到几百K后,我表示人生已经圆满了。将图片重新更新到服务器的时候,我想这下应该解决问题了吧!!

但也只是我想想,问题并没有被解决,页面在加载时,图片仍然卡顿!!

迎面一盆冰水浇过来的感觉,我已经不造说什么好。

4.采用图片预加载或图片分屏加载

采用以上两种方式,页面加载图片仍卡顿!!!

以上两种方式会单独说怎么操作。

5.本地缓存

仍然无用

6.UI保存图片方式错误。应该采用渐进式的JPEG

我和后端童鞋一起,从各自的方向挣扎了n天,尝试了n种方法,都没能解决这种情况。

于是各自求助经验比较丰富的人。

有个大神告诉我们,可能是UI保存图片的问题。大神从官网下载一张图片,处理过后发给我们,放上去后,问题完美解决!!撒花~~~

UI在保存图片的时候,要保存成渐进式的JPEG。

标准型jpg图片显示效果:

渐进式jpg显示效果:

以上两图来自文章:PhotoShop制作渐进式JPEG的方法。 链接:http://www.jb51.net/photoshop/182198.html

img加载卡顿,解决办法的更多相关文章

  1. tensorflow_mnist数据集一直加载错误的解决办法

    tensorflow数据集一直加载错误的解决办法: from tensorflow.examples.tutorials.mnist import input_data mnist = input_d ...

  2. win7/8系统中php5.3和5.4、5.5不能加载php_curl.dll解决办法

    win7/8系统中php5.3和5.4.5.5不能加载php_curl.dll解决办法   作者:用户 来源:互联网 时间:2016-06-23 18:54:33 php变量注释系统模块 摘要: 本文 ...

  3. Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)

    最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也 ...

  4. Javascript加载速度慢解决办法

    通常我们的网站里面会加载一些js代码,统计啊,google广告啊,百度同盟啊,阿里妈妈广告代码啊,一堆,最后弄得页面加载速度很慢,很慢.解决办法:换一个js包含的方式,让javascript加载速度倍 ...

  5. iOS app应用界面加载卡顿的问题

    刚发布版本,忽然发现加载界面需要3-5秒延迟,那么问题来了. 首先,发现问题: 1.看代码,基于之前版本更新都没出问题,还是比较确信不是代码中的bug,以防万一,还是仔细看了下关于界面跳转部分的代码, ...

  6. vim下单行长文本的时候卡顿解决办法

    在vim编辑文件时,若单行过长,可能会导致vim卡顿,严重影响使用体验 估计是syntax匹配效率过滥导致.. 偶尔发现了一个临时的解决办法就是关掉syntax然后再打开,即在命令模式下 :synta ...

  7. 升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法

    升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下 ...

  8. android viewpager fragment切换时界面卡顿解决办法

    目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyI ...

  9. reactnative中FlatList上拉加载更多的解决办法

    项目app中用到了list滚动加载,把List做了下对比发现FlatList比较适合自己的项目,但是在实际运用中 onEndReached方法需要给定 onEndReachedThreshold的高度 ...

随机推荐

  1. Luogu P3412 仓鼠找$sugar$ $II$

    Luogu P3412 仓鼠找\(sugar\) \(II\) 题目大意: 给定一棵\(n\)个点的树, 仓鼠每次移动都会等概率选择一个与当前点相邻的点,并移动到此点. 现在随机生成一个起点.一个终点 ...

  2. 好用的sitemap生成器—GY SiteMap

    好用的sitemap生成器-GY SiteMap 下载地址:http://www.wyxxw.cn/download-detail-6-8-14.html 网站地图可以更好的帮助搜索引擎抓取.收录网站 ...

  3. c++程序运行时的内存分配《转》

    C++中,内存分为5个区:堆.栈.自由存储区.全局/静态存储区和常量存储区. 1.栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区.通常存放局部变量.函数参数等. 2.堆:是由new分配的 ...

  4. 我对asp.net运行机制的理解

    有一本书叫<asp.net 本质论>,作者名叫冠军.我看了几次,都没有坚持看下来.这次连续看完了前三章,然后参考网上的资料,总结下我对.net运行机制的理解. 先上两张图: 看着这两张图, ...

  5. Android 运行时权限及APP适配

    Android 6.0起,Android加强了权限管理,引入运行时权限概念.对于: 1. Android 5.1(API 22)及以前版本,应用权限必须声明在AndroidManifest.xml中, ...

  6. APNS IOS 消息推送

    一.Apns简介: Apns是苹果推送通知服务. 二.原理: APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备):然后,将服务器的信息接收并且 ...

  7. Qt 创建一个QtDesinger第三方控件

    1.需要创建一个合适的.pro文件 2.创建一个继承QDesignerCustomWidgetInterface的类,描述控件的一些属性. 函数 描述和返回值 name() 指定控件的名称 group ...

  8. eclipse热部署web项目

    一.选中JavaEE视图 因为在普通的Java视图下,窗口下方没有server选项卡 二.双击Tomcat 注意:可能很多人当然包括我一开始的时候,都是喜欢右键Tomcat然后Add and remo ...

  9. 关于“应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具”问题的解决方法

    今天打开QQ管家加速版的时候突然出现了这个错误,百度了下说是系统缺少Microsoft Visual C++ 20XX(运行库),下载这个安装即可解决问题.

  10. 强大核心功能矩阵,详解腾讯云负载均衡CLB高可靠高性能背后架构

    1 前言 腾讯云负载均衡(Cloud LoadBalancer),简称CLB, 负载均衡通过设置虚拟服务地址(VIP)将来自客户端的请求按照指定方式分发到其关联的多台后端云服务器,服务器将请求的响应返 ...