回答編集履歴

2

ajax による呼び出し処理部分を記述

2016/12/09 03:34

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -6,12 +6,48 @@
6
6
 
7
7
  0. DBアクセスしてデータを返す(できれば JSON 形式で返せると後が楽)、Java Servlet を作成します
8
8
 
9
- 0. JavaScript で、上記の Java Servlet を ajax で呼び出して、内容を反映する処理を記述した関数を作ります(ここら辺は jQuery 使うと簡単に記述できます)
9
+ 0. JavaScript で、上記の Java Servlet を ajax で呼び出して、内容を反映する処理を記述した関数を作ります(ここら辺は jQuery 使うと簡単に記述できますが、素のJavaScriptでもいけます
10
+
11
+ ```JavaScript
12
+
13
+ var xhr = new XMLHttpRequest();
14
+
15
+ xhr.onreadystatechange = function() {
16
+
17
+ if (xhr.readystate == 4) { // 通信完了
18
+
19
+ if (xhr.status == 200) { // 200 STATUS OK
20
+
21
+ var data = eval('(' + xhr.responseText + ')');
22
+
23
+ // ここで data は Java Servlet からの戻り値(JSON)をパースした結果
24
+
25
+ ... // あとはデータを画面に反映させる
26
+
27
+ }
28
+
29
+ }
30
+
31
+ };
32
+
33
+ function autoUpdate() {
34
+
35
+ xhr.open('GET', {Java Servlet へのURL}, false); // 非同期である必要はたぶんないでしょう
36
+
37
+ xhr.send(null);
38
+
39
+ };
40
+
41
+
42
+
43
+
44
+
45
+ ```
10
46
 
11
47
  0. 画面の HTML 内で、JavaScript で、先ほど作った関数を定期的に呼び出すように setInterval を行います
12
48
 
13
49
  ```JavaScript
14
50
 
15
- setInterval(先ほど作った関数名, 呼び出し間隔(ミリ秒))
51
+ setInterval("autoUpdate()", 呼び出し間隔(ミリ秒))
16
52
 
17
53
  ```

1

前提質問を踏まえて修正

2016/12/09 03:34

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -1 +1,17 @@
1
1
  JavaScript ならば、window.setInterval() を使って、定期的に呼び出される関数を作ることができますから、その関数内で DB アクセス→画面項目への反映 を行えばよいでしょう。
2
+
3
+
4
+
5
+ [この質問](https://teratail.com/questions/58211)からの派生ととらえますと、やるべきことは次の通りです。
6
+
7
+ 0. DBアクセスしてデータを返す(できれば JSON 形式で返せると後が楽)、Java Servlet を作成します
8
+
9
+ 0. JavaScript で、上記の Java Servlet を ajax で呼び出して、内容を反映する処理を記述した関数を作ります(ここら辺は jQuery 使うと簡単に記述できます)
10
+
11
+ 0. 画面の HTML 内で、JavaScript で、先ほど作った関数を定期的に呼び出すように setInterval を行います
12
+
13
+ ```JavaScript
14
+
15
+ setInterval(先ほど作った関数名, 呼び出し間隔(ミリ秒))
16
+
17
+ ```