回答編集履歴

1

#sample

2019/07/18 09:50

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -5,3 +5,127 @@
5
5
  - A,B,Cを並行して動かして一番遅いのを待つならpromise.allで十分です
6
6
 
7
7
  - たんにA,B,Cをバラバラに動かしてバラバラに処理するなら普通にfor文でまわすだけです
8
+
9
+
10
+
11
+ # sample
12
+
13
+ - ajax.php
14
+
15
+ とりあえずsというパラメータでsleepする秒を渡してその値を表示するモノを用意
16
+
17
+ ```PHP
18
+
19
+ <?PHP
20
+
21
+ $sleep=filter_input(INPUT_GET,'s');
22
+
23
+ sleep($sleep);
24
+
25
+ print $sleep;
26
+
27
+ ?>
28
+
29
+ ```
30
+
31
+ ※ajax.php?s=2とすると、2秒待って"2"と表示される
32
+
33
+
34
+
35
+ # A→B→Cと順番に処理
36
+
37
+ 2,3,1と渡すと、2秒後に"2"、その3秒後に"3"、その1秒後に"1"
38
+
39
+ ```javascript
40
+
41
+ $(function(){
42
+
43
+ (async()=>{
44
+
45
+ for(var i of [2,3,1]){
46
+
47
+ await $.ajax({
48
+
49
+ url:"ajax.php",
50
+
51
+ data:{s:i},
52
+
53
+ }).done(function(data){
54
+
55
+ console.log(data);
56
+
57
+ });
58
+
59
+ }
60
+
61
+ })();
62
+
63
+ });
64
+
65
+ ```
66
+
67
+ # A,B,Cを並行して動かして一番遅いのを待つ
68
+
69
+ 2,3,1を渡すと、一番遅い3を待って2,3,1と表示される
70
+
71
+ ```javascript
72
+
73
+ $(function(){
74
+
75
+ var d=[];
76
+
77
+ $.each([2,3,1],function(x){
78
+
79
+ d[x]=$.Deferred();
80
+
81
+ $.ajax({
82
+
83
+ url:"ajax.php",
84
+
85
+ data:{s:$(this).get(0)},
86
+
87
+ }).done(function(data){
88
+
89
+ d[x].resolve(data);
90
+
91
+ });
92
+
93
+ });
94
+
95
+ $.when.apply(null,d).done(function(r1,r2,r3){
96
+
97
+ console.log([r1,r2,r3]);
98
+
99
+ });
100
+
101
+ });
102
+
103
+ ```
104
+
105
+ # A,B,Cをバラバラに動かしてバラバラに処理するなら
106
+
107
+ 2,3,1と渡すが、1,2,3と順次表示される
108
+
109
+ ```javascript
110
+
111
+ $(function(){
112
+
113
+ $.each([2,3,1],function(){
114
+
115
+ $.ajax({
116
+
117
+ url:"ajax.php",
118
+
119
+ data:{s:$(this).get(0)},
120
+
121
+ }).done(function(data){
122
+
123
+ console.log(data);
124
+
125
+ });
126
+
127
+ });
128
+
129
+ });
130
+
131
+ ```