質問するログイン新規登録

回答編集履歴

2

調整

2017/11/21 05:27

投稿

yambejp
yambejp

スコア118102

answer CHANGED
@@ -31,7 +31,7 @@
31
31
  ※遅延を発生させるため、読み込むファイルはphpを指定してあります
32
32
  ```javascript
33
33
  var a=["1.php","2.php","3.php","4.php","5.php"];
34
- var b=[null,null,null,null,null];
34
+ var b=a.map(function(){return null});
35
35
  for(var i=0;i<a.length;i++){
36
36
  getData(i,a[i]);
37
37
  };

1

追記

2017/11/21 05:27

投稿

yambejp
yambejp

スコア118102

answer CHANGED
@@ -26,4 +26,74 @@
26
26
  }
27
27
  xhr.send( '' );
28
28
  }
29
+ ```
30
+ # 追記
31
+ ※遅延を発生させるため、読み込むファイルはphpを指定してあります
32
+ ```javascript
33
+ var a=["1.php","2.php","3.php","4.php","5.php"];
34
+ var b=[null,null,null,null,null];
35
+ for(var i=0;i<a.length;i++){
36
+ getData(i,a[i]);
37
+ };
38
+ var pointer=0;
39
+ var counter=0;
40
+ var timerId=setInterval(function(){
41
+ while(b[pointer]!==null){
42
+ console.log(b[pointer]);
43
+ pointer++;
44
+ if(pointer>=b.length){
45
+ console.log("all.done!");
46
+ clearInterval(timerId);
47
+ break;
48
+ }
49
+ }
50
+ counter++;
51
+ if(counter>100){
52
+ console.log("stop!");
53
+ clearInterval(timerId);
54
+ }
55
+ },100);
56
+ function getData(num,url){
57
+ var xhr = new XMLHttpRequest();
58
+ xhr.open( "GET", url );
59
+ xhr.onreadystatechange=function(){
60
+ if(( xhr.readyState == 4 ) && ( xhr.status == 200 )){
61
+ b[num]=xhr.response;
62
+ }
63
+ }
64
+ xhr.send( '' );
65
+ }
66
+ ```
67
+ - 1.php
68
+ ```PHP
69
+ <?PHP
70
+ echo 1;
71
+ ?>
72
+ ```
73
+ - 2.php
74
+ ```PHP
75
+ <?PHP
76
+ sleep(3);
77
+ echo 2;
78
+ ?>
79
+ ```
80
+ - 3.php
81
+ ```PHP
82
+ <?PHP
83
+ sleep(2);
84
+ echo 3;
85
+ ?>
86
+ ```
87
+ - 4.php
88
+ ```PHP
89
+ <?PHP
90
+ sleep(4);
91
+ echo 4;
92
+ ?>
93
+ ```
94
+ - 5.php
95
+ ```PHP
96
+ <?PHP
97
+ echo 5;
98
+ ?>
29
99
  ```