# レコード更新時の画面自動リロードについて

**URL:** <https://community.cybozu.dev/t/topic/9617>\
**Category:** kintone 開発相談\
**Created:** [2024 年 10 月 17 日午後 11:27 UTC](https://community.cybozu.dev/t/topic/9617 "2024-10-17T23:27:01Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![yosuke](https://avatars.discourse-cdn.com/v4/letter/y/f17d59/32.png) [@yosuke](https://community.cybozu.dev/u/yosuke)\
**Post date:** [2024 年 10 月 17 日午後 11:27 UTC](https://community.cybozu.dev/t/topic/9617/1 "2024-10-17T23:27:01Z")

</div>

お世話になっております。  
プログラム初心者で恐縮ですが、以下の様な動作を実現したく、実現可否または実現可の場合は詳細方法をご教授いただければ幸いです。

●希望動作  
別画面で開いている仮称A/Bアプリにて、AアプリよりBへレコード追加更新を実施した際に、Bアプリ側画面で自動リロードを実行させたい

A→Bへの追加更新は別ツールにて構築しておりますが、B画面自動リロードが各情報参照させて頂いても該当するものが見当たらずのご質問となります。

---

<div class="post-metadata">

**Author:** ![mura](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mura/32/41_2.png) [@mura](https://community.cybozu.dev/u/mura)\
**Post date:** [2024 年 10 月 17 日午後 11:54 UTC](https://community.cybozu.dev/t/topic/9617/2 "2024-10-17T23:54:33Z")

</div>

その場合はBアプリ側にJSカスタマイズを用いて `setInterval` 等を用いて変更点がないか確認し続け、あればリロードする、というような流れになるかなとは思います。（ポーリング）

ただ、あくまで10秒間隔などでAPIをコールし続ける必要がありますし、リアルタイムには難しいってかんじですかね。画面表示しっぱなしなどがあるとAPI上限も気になりはします。

---

<div class="post-metadata">

**Author:** ![yosuke](https://avatars.discourse-cdn.com/v4/letter/y/f17d59/32.png) [@yosuke](https://community.cybozu.dev/u/yosuke)\
**Post date:** [2024 年 10 月 18 日午前 12:39 UTC](https://community.cybozu.dev/t/topic/9617/3 "2024-10-18T00:39:02Z")

</div>

mura様

早速のご回答有難う御座います。

JSカスタマイズで可能なのですね、リアルタイム性については分単位レベルまではズレがあっても問題ない対象なので是非検討させて頂きたいと考えております。

画面の自動リロード自体は調査した際にB側へ以下の様なjs適用にて実行確認出来ているのですが、こちらにsetIntervalを組み込み変更点チェックをする場合はどの様な記述になりますでしょうか？

* * *

(function () {  
“use strict”;

kintone.events.on(‘app.record.index.show’, function (e) {

function startTimer() {  
timer = setInterval(function() {  
nextRefleshText.innerText = “画面更新まで " + --count + " 秒”;  
if(count == 0) {  
location.reload();  
}  
}, 1000)  
}

function stopTimer() {  
clearInterval(timer);  
}

const autoRefleshStart = “自動画面更新を開始”;  
const autoRefleshEnd = “自動画面更新を一時停止”;  
let autoRefleshFlag = true;  
let timer;  
let count = 120;

const autoRefleshFlagButton = document.createElement(‘button’);  
autoRefleshFlagButton.innerText = autoRefleshEnd;

const nextRefleshText = document.createElement(‘text’);  
nextRefleshText.innerText = “画面更新まで " + count + " 秒”;

kintone.app.getHeaderMenuSpaceElement().appendChild(nextRefleshText);  
kintone.app.getHeaderMenuSpaceElement().appendChild(autoRefleshFlagButton);

startTimer();

## autoRefleshFlagButton.onclick = function() { if(autoRefleshFlag) { autoRefleshFlag = false; autoRefleshFlagButton.innerText = autoRefleshStart; stopTimer(); } else { autoRefleshFlag = true; autoRefleshFlagButton.innerText = autoRefleshEnd; startTimer(); } } }); })();

---

<div class="post-metadata">

**Author:** ![yosuke](https://avatars.discourse-cdn.com/v4/letter/y/f17d59/32.png) [@yosuke](https://community.cybozu.dev/u/yosuke)\
**Post date:** [2024 年 10 月 18 日午前 5:13 UTC](https://community.cybozu.dev/t/topic/9617/5 "2024-10-18T05:13:39Z")

</div>

てんそ様

ご回答有難う御座います。

頂戴しましたjsにて希望仕様反映が出来ました。  
カウント毎に前カウント時との対比をさせれば良いのですね。

お恥ずかしながらjs知識が未だ未だ乏しく頂いたjs全てを理解出来ておりませんが、一度頂戴したjsを参考サイト等見ながら内容理解を進めて参ります。

ご迅速なご回答頂き、ありがとうございました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2024 年 10 月 21 日午前 5:13 UTC](https://community.cybozu.dev/t/topic/9617/6 "2024-10-21T05:13:42Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
