回答編集履歴

1

#sample

2019/07/18 09:50

投稿

yambejp
yambejp

score381

test CHANGED
@@ -5,127 +5,3 @@
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
- ```