2017-04-20 5 views
0

私はこれが可能であるかどうか完全には分かっていませんが、ここで私がやっていることがあります。別のページから関数を実行する

私は私が探しています何

(例えば、ボタン1をクリックすると、プレイヤー1のスコアに10点を追加します)、押されたとき、それらが結合されているデータベースを変更することを、ボタンのリストを持っています連動して行うには、別のページにあるjavascript関数を呼び出すことです。これは、ポイントがプレーヤー1のアカウントに追加されたことを視覚的に確認するものです。

なぜこのように整理していますか?

私は、統計情報と情報を表示するために一連のWebビューを構築するTwitchチャネルを実行しています。オーディエンスが1ページから見えるものを制御し、結果を別のページに表示させたいと考えています。

は、ここで私がこれまで持っているものです。

HTML(管理者ページ):

<button class="addPoints" data-id="player1" data-name="Player 1">Player 1</button> 

JS(管理者ページ):

$(".addPoints").on('click', function(){ 
var $id = $(this).data('id'); 
var $name = $(this).data('name'); 
//AJAX MAGIC TO INSERT POINTS INTO DATABASE SO I CAN KEEP SCORE// 
tallyPopup($id, $name); 
}); 

HTML(表示ページ):

<div class="displayScreen"></div> 

JS(表示ページ):

function tallyPopup(member, name){ 
$('.displayScreen').append(<div class='tallyPopup' id='"+member+"'><div class='portrait' id='"+member+"'></div><span class='name'>"+name+"</span><span class='score'>+10</span></div>); 
$('.tallyPopup').animate({ 
opacity: 1 
}, 3000, function(){ 
$(this).remove(); 
}); 
} 

私はそれを行う方法についての最初の手掛かりを持っていないので、それも可能だ場合、私は、2つのページに接続していないしているか知っています。または、データベースが更新された後でtallyPopup関数が実行されたかどうかを確認するためのHTMLの表示方法がありますか?

ありがとうございます。

+0

[この質問を見る](http://stackoverflow.com/questions/9106516/push-notifications-from-server-to-user-with-php-javascript) – Draco18s

答えて

0

ウェブサイトを実行している別のクライアント(独自のクライアントを含む)で関数を呼び出すことはできません。あなたがclearInterval(intv)を呼び出すまで

連続繰り返しにvar intv = setInterval(function() {}, nMilliseconds)を使用して、表示ページ上の点を確認するためには、あなたが、これが永遠に実行したい、おそらく一度だけ、毎分(nMilliseconds = 60000)があるので、あなたがいない可能性がある、機能を実行します。

setInterval(function() { $.get('/point-count').then(tallyPopup) }, 60000) 

tallyPopupは、AJAX応答からデータ引数を受け取ります。

もちろん、管理者側では、AJAX経由でPUT、POST、PATCHのいずれかでポイント数を更新する必要があります。私は意味論の問題のようにPATCHを使うことを考えます。

はまた約束、使用CSSアニメーションの代わりに、$.animateを(これらははるかに良い実行)を使用し、代わりに複数回それを呼び出す(var $this = $(this)$(this)の戻り値を格納することを検討してください。 $.remove(パフォーマンスの向上)を使用する代わりに、要素を不透明にしてから可視にすることを検討します(おそらく、表示されていないときに画面から外す)。