Skip to content

Commit b9613d1

Browse files
committed
修复图片onerror的场景下不停请求的问题
1 parent b693560 commit b9613d1

File tree

10 files changed

+7779
-12
lines changed

10 files changed

+7779
-12
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@
4141
"index.html",
4242
"gulp"
4343
],
44-
"version": "2.2.2"
44+
"version": "2.2.3"
4545
}

build/iSlider.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
* version
187187
* @type {string}
188188
*/
189-
iSlider.VERSION = '2.2.2';
189+
iSlider.VERSION = '2.2.3';
190190

191191
/**
192192
* Event white list
@@ -905,6 +905,9 @@
905905
case _NT.pic:
906906
if (item.load === 2) {
907907
insertImg();
908+
}
909+
if (item.load === -1) {
910+
908911
}
909912
else {
910913
var currentImg = new Image();
@@ -915,6 +918,9 @@
915918
insertImg();
916919
item.load = 2;
917920
};
921+
currentImg.onerror = function () {
922+
item.load = -1;
923+
}
918924
}
919925
break;
920926
case _NT.dom:
@@ -1066,7 +1072,7 @@
10661072
var data = this.data;
10671073
var len = data.length;
10681074
var self = this;
1069-
var loadImg = function preloadImgLoadingProcess(index) {
1075+
var loadImg = function (index) {
10701076
var item = data[index];
10711077
if (self._itemType(item) === 'pic' && !item.load) {
10721078
var preloadImg = new Image();
@@ -1076,6 +1082,9 @@
10761082
item.height = preloadImg.height;
10771083
item.load = 2;
10781084
};
1085+
preloadImg.onerror = function () {
1086+
item.load = -1;
1087+
}
10791088
item.load = 1;
10801089
}
10811090
};

build/iSlider.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/index.bundle.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ return /******/ (function(modules) { // webpackBootstrap
605605
* version
606606
* @type {string}
607607
*/
608-
iSlider.VERSION = '2.2.2';
608+
iSlider.VERSION = '2.2.3';
609609

610610
/**
611611
* Event white list
@@ -1324,6 +1324,9 @@ return /******/ (function(modules) { // webpackBootstrap
13241324
case _NT.pic:
13251325
if (item.load === 2) {
13261326
insertImg();
1327+
}
1328+
if (item.load === -1) {
1329+
13271330
}
13281331
else {
13291332
var currentImg = new Image();
@@ -1334,6 +1337,9 @@ return /******/ (function(modules) { // webpackBootstrap
13341337
insertImg();
13351338
item.load = 2;
13361339
};
1340+
currentImg.onerror = function () {
1341+
item.load = -1;
1342+
}
13371343
}
13381344
break;
13391345
case _NT.dom:
@@ -1485,7 +1491,7 @@ return /******/ (function(modules) { // webpackBootstrap
14851491
var data = this.data;
14861492
var len = data.length;
14871493
var self = this;
1488-
var loadImg = function preloadImgLoadingProcess(index) {
1494+
var loadImg = function (index) {
14891495
var item = data[index];
14901496
if (self._itemType(item) === 'pic' && !item.load) {
14911497
var preloadImg = new Image();
@@ -1495,6 +1501,9 @@ return /******/ (function(modules) { // webpackBootstrap
14951501
item.height = preloadImg.height;
14961502
item.load = 2;
14971503
};
1504+
preloadImg.onerror = function () {
1505+
item.load = -1;
1506+
}
14981507
item.load = 1;
14991508
}
15001509
};

demo/image.html

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<!DOCTYPE html>
2+
<html lang="zh-CN">
3+
<head>
4+
<meta charset="utf-8"/>
5+
<meta name="viewport"
6+
content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"/>
7+
<title>iSlider loop</title>
8+
<link href="public/css/iSlider.css" rel="stylesheet">
9+
<style>
10+
body {
11+
margin: 0;
12+
padding: 0;
13+
background: #333;
14+
overflow: hidden;
15+
}
16+
17+
/*ul wrapper*/
18+
#iSlider-wrapper {
19+
height: 100%;
20+
width: 100%;
21+
overflow: hidden;
22+
position: absolute;
23+
}
24+
25+
#iSlider-wrapper ul {
26+
list-style: none;
27+
margin: 0;
28+
padding: 0;
29+
height: 100%;
30+
overflow: hidden;
31+
}
32+
33+
#iSlider-wrapper li {
34+
position: absolute;
35+
margin: 0;
36+
padding: 0;
37+
height: 100%;
38+
overflow: hidden;
39+
display: -webkit-box;
40+
-webkit-box-pack: center;
41+
-webkit-box-align: center;
42+
list-style: none;
43+
}
44+
45+
#iSlider-wrapper li img {
46+
max-width: 100%;
47+
max-height: 100%;
48+
}
49+
</style>
50+
51+
</head>
52+
<body>
53+
<div id="iSlider-wrapper"></div>
54+
<div id="hidden-space" style="display:none">
55+
<p style="font-size:3em;text-align: center;color:#04f512">A node in dom tree.</p>
56+
</div>
57+
<script type="text/javascript" src="public/js/iSlider.js"></script>
58+
<script type="text/javascript" src="public/js/iSlider.animate.js"></script>
59+
<script id="show-code">
60+
var list = [
61+
// picture
62+
{
63+
content: './imgs/pic.jpg'
64+
},
65+
{
66+
content: './imgs/mob.png'
67+
},
68+
{
69+
content: './imgs/no-exsit.png'
70+
},
71+
{
72+
content: './imgs/no-exsit1.png'
73+
},
74+
{
75+
content: './imgs/no-exsit2.png'
76+
},
77+
{
78+
content: './imgs/no-exsit3.png'
79+
},
80+
];
81+
82+
var S = new iSlider(document.getElementById('iSlider-wrapper'), list, {
83+
isAutoplay: 1,
84+
isLooping: 1,
85+
isOverspread: 1,
86+
animateTime: 800
87+
});
88+
</script>
89+
</body>
90+
</html>

demo/public/js/iSlider.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
* version
187187
* @type {string}
188188
*/
189-
iSlider.VERSION = '2.2.2';
189+
iSlider.VERSION = '2.2.3';
190190

191191
/**
192192
* Event white list
@@ -905,6 +905,9 @@
905905
case _NT.pic:
906906
if (item.load === 2) {
907907
insertImg();
908+
}
909+
if (item.load === -1) {
910+
908911
}
909912
else {
910913
var currentImg = new Image();
@@ -915,6 +918,9 @@
915918
insertImg();
916919
item.load = 2;
917920
};
921+
currentImg.onerror = function () {
922+
item.load = -1;
923+
}
918924
}
919925
break;
920926
case _NT.dom:
@@ -1066,7 +1072,7 @@
10661072
var data = this.data;
10671073
var len = data.length;
10681074
var self = this;
1069-
var loadImg = function preloadImgLoadingProcess(index) {
1075+
var loadImg = function (index) {
10701076
var item = data[index];
10711077
if (self._itemType(item) === 'pic' && !item.load) {
10721078
var preloadImg = new Image();
@@ -1076,6 +1082,9 @@
10761082
item.height = preloadImg.height;
10771083
item.load = 2;
10781084
};
1085+
preloadImg.onerror = function () {
1086+
item.load = -1;
1087+
}
10791088
item.load = 1;
10801089
}
10811090
};

demo/public/js/iSlider.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)