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

回答編集履歴

2

コメント

2017/03/25 17:22

投稿

gusachan
gusachan

スコア23

answer CHANGED
@@ -5,29 +5,30 @@
5
5
 
6
6
  setTimeout でできました。イベント、コールバック関数についてはこれから勉強したいと思います。
7
7
 
8
+ Timeoutを実装して10秒待っても完了しないときは abort()を呼び出しリクエストを中止する。
8
9
  window.onload = function() {
9
- function getText(path, timeout) {
10
+  function getText(path, timeout) {
10
- var request = new XMLHttpRequest();
11
+   var request = new XMLHttpRequest();
11
- var timeout = false;
12
+   var timeout = false;
12
13
 
13
- var timer = setTimeout(function() {
14
+   var timer = setTimeout(function() {
14
- timeout = true;
15
+    timeout = true;
15
- request.abort();
16
+    request.abort();
16
- }, 10000);
17
+   }, 10000);
17
18
 
18
- request.open("GET", path, true);
19
+   request.open("GET", path, true);
19
20
 
20
- request.onreadystatechange = function() {
21
+   request.onreadystatechange = function() {
21
- if (request.readyState !== 4) return;
22
+    if (request.readyState !== 4) return;
22
- if (timeout) return;
23
+    if (timeout) return;
23
- clearTimeout(timer);
24
+    clearTimeout(timer);
24
- if (request.status === 200) {
25
+    if (request.status === 200) {
25
- var type = request.getResponseHeader("Content-Type");
26
+     var type = request.getResponseHeader("Content-Type");
26
- if (type.match(/^text/))
27
+     if (type.match(/^text/))
27
- parseCSV(request.responseText);
28
+      parseCSV(request.responseText);
28
- }
29
+   }
29
- };
30
+   };
30
- request.send(null);
31
+   request.send(null);
31
- }
32
+  }
32
33
 
33
34
  愚鈍な小生にコーディングのサンプルなどご教示いただければ幸いです。

1

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

2017/03/25 17:22

投稿

gusachan
gusachan

スコア23

answer CHANGED
@@ -3,4 +3,31 @@
3
3
  }
4
4
  setTimeout(displayBlock, 1000);
5
5
 
6
- setTimeout でできました。イベント、コールバック関数についてはこれから勉強したいと思います。
6
+ setTimeout でできました。イベント、コールバック関数についてはこれから勉強したいと思います。
7
+
8
+ window.onload = function() {
9
+ function getText(path, timeout) {
10
+ var request = new XMLHttpRequest();
11
+ var timeout = false;
12
+
13
+ var timer = setTimeout(function() {
14
+ timeout = true;
15
+ request.abort();
16
+ }, 10000);
17
+
18
+ request.open("GET", path, true);
19
+
20
+ request.onreadystatechange = function() {
21
+ if (request.readyState !== 4) return;
22
+ if (timeout) return;
23
+ clearTimeout(timer);
24
+ if (request.status === 200) {
25
+ var type = request.getResponseHeader("Content-Type");
26
+ if (type.match(/^text/))
27
+ parseCSV(request.responseText);
28
+ }
29
+ };
30
+ request.send(null);
31
+ }
32
+
33
+ 愚鈍な小生にコーディングのサンプルなどご教示いただければ幸いです。