回答編集履歴

2

コメント

2017/03/25 17:22

投稿

gusachan
gusachan

スコア22

test CHANGED
@@ -12,53 +12,55 @@
12
12
 
13
13
 
14
14
 
15
+ Timeoutを実装して10秒待っても完了しないときは abort()を呼び出しリクエストを中止する。
16
+
15
17
  window.onload = function() {
16
18
 
17
- function getText(path, timeout) {
19
+  function getText(path, timeout) {
18
20
 
19
- var request = new XMLHttpRequest();
21
+   var request = new XMLHttpRequest();
20
22
 
21
- var timeout = false;
23
+   var timeout = false;
22
24
 
23
25
 
24
26
 
25
- var timer = setTimeout(function() {
27
+   var timer = setTimeout(function() {
26
28
 
27
- timeout = true;
29
+    timeout = true;
28
30
 
29
- request.abort();
31
+    request.abort();
30
32
 
31
- }, 10000);
33
+   }, 10000);
32
34
 
33
35
 
34
36
 
35
- request.open("GET", path, true);
37
+   request.open("GET", path, true);
36
38
 
37
39
 
38
40
 
39
- request.onreadystatechange = function() {
41
+   request.onreadystatechange = function() {
40
42
 
41
- if (request.readyState !== 4) return;
43
+    if (request.readyState !== 4) return;
42
44
 
43
- if (timeout) return;
45
+    if (timeout) return;
44
46
 
45
- clearTimeout(timer);
47
+    clearTimeout(timer);
46
48
 
47
- if (request.status === 200) {
49
+    if (request.status === 200) {
48
50
 
49
- var type = request.getResponseHeader("Content-Type");
51
+     var type = request.getResponseHeader("Content-Type");
50
52
 
51
- if (type.match(/^text/))
53
+     if (type.match(/^text/))
52
54
 
53
- parseCSV(request.responseText);
55
+      parseCSV(request.responseText);
54
56
 
55
- }
57
+   }
56
58
 
57
- };
59
+   };
58
60
 
59
- request.send(null);
61
+   request.send(null);
60
62
 
61
- }
63
+  }
62
64
 
63
65
 
64
66
 

1

Timeoutを実装して10秒待っても完了しないときは abort\(\) を呼び出しリクエストを中止します。

2017/03/25 17:22

投稿

gusachan
gusachan

スコア22

test CHANGED
@@ -9,3 +9,57 @@
9
9
 
10
10
 
11
11
  setTimeout でできました。イベント、コールバック関数についてはこれから勉強したいと思います。
12
+
13
+
14
+
15
+ window.onload = function() {
16
+
17
+ function getText(path, timeout) {
18
+
19
+ var request = new XMLHttpRequest();
20
+
21
+ var timeout = false;
22
+
23
+
24
+
25
+ var timer = setTimeout(function() {
26
+
27
+ timeout = true;
28
+
29
+ request.abort();
30
+
31
+ }, 10000);
32
+
33
+
34
+
35
+ request.open("GET", path, true);
36
+
37
+
38
+
39
+ request.onreadystatechange = function() {
40
+
41
+ if (request.readyState !== 4) return;
42
+
43
+ if (timeout) return;
44
+
45
+ clearTimeout(timer);
46
+
47
+ if (request.status === 200) {
48
+
49
+ var type = request.getResponseHeader("Content-Type");
50
+
51
+ if (type.match(/^text/))
52
+
53
+ parseCSV(request.responseText);
54
+
55
+ }
56
+
57
+ };
58
+
59
+ request.send(null);
60
+
61
+ }
62
+
63
+
64
+
65
+ 愚鈍な小生にコーディングのサンプルなどご教示いただければ幸いです。