私はオンラインのPHPベースのファンタジーペットシミュレーションゲームをプログラミングしています。私はAJAXにあまり詳しくないので、答えるときはこのことを覚えておいてください。
ペットのページでは、ページ全体をリロードすることなく、ユーザーがペットに餌をやったり、水をやったり、遊んだりできるようにしたいと思っています。そのため、AJAXを使用しています。これが私がこれまでに持っているものです:
作業スクリプト
$(function() {
$(".petcareFood").click(function(event) {
event.preventDefault();
$("#petcareFood").load($(this).attr("href"));
});
});
$(function() {
$(".petcareWater").click(function(event) {
event.preventDefault();
$("#petcareWater").load($(this).attr("href"));
});
});
$(function() {
$(".petcarePlay").click(function(event) {
event.preventDefault();
$("#petcarePlay").load($(this).attr("href"));
});
});
</script>
作業中のHTML
<a class=\"petcareFood\" href=\"petcare.php?pet=#&action=#\">Feed Your Pet</a>
<a class=\"petcareWater\" href=\"petcare.php?pet=#&action=#\">Water Your Pet</a>
<a class=\"petcarePlay\" href=\"petcare.php?pet=#&action=#\">Play With Your Pet</a>
今、私が上にリストしたすべてが魅力のように機能します!これが私の問題です。これらのリンクで別のDIVも更新する必要があります。このDIVには、ペットがどれだけ空腹/喉が渇いた/不幸かを示す更新されたステータスバーが含まれています。現在、私はこのようにしています:
ほぼ機能するスクリプト
$(function() {
$(".petcareFood").click(function(event) {
event.preventDefault();
$('#petcareHunger').load('ajax/hunger.php?pet=#');
});
});
$(function() {
$(".petcareWater").click(function(event) {
event.preventDefault();
$('#petcareThirst').load('ajax/thirst.php?pet=#');
});
});
$(function() {
$(".petcarePlay").click(function(event) {
event.preventDefault();
$('#petcareMood').load('ajax/mood.php?pet=#');
});
});
上記のスクリプトは、ユーザーがHTMLリンクの1つをクリックすると、2つのDIVSを更新するようにします(1つのDIVには、ユーザーがペットと餌をやったり、水をやったり、遊んだりするときに表示されるメッセージが含まれ、もう1つにはステータスバーが含まれます)。さて...それはすべてうまくいっているようですが...両方のスクリプトがまったく同時に更新された場合、ステータスバーを処理するPHPは更新されません-それでも古い情報を取得しています。
皆さんへの私の質問は次のとおりです。スクリプトの2番目のセットの実行を遅らせることができる方法はありますか(PHPがMySQLに変更を加えた後に更新されるように)?
「ほぼ機能するスクリプト」の前にこれを挿入してみました。
setTimeout(function() {
$('#petcareMood').load('ajax/mood.php?pet=#');
}, 2000);
ただし、機能しません。ええと、そうですが、一度だけです。ユーザーは、100%の幸せを達成するために、少なくとも1日に3回ペットと遊ぶ必要があります。そのため、2番目のDIVを1回だけ遅らせても、私にとっては効果がありません。同じスクリプトを複数回追加しようとすると、すべてが一緒に機能しなくなりました。私に何ができる?!
動作のスクリーンショットをご覧になりたい場合は、お問い合わせください。ご要望に応じて喜んで提供させていただきます。
前もって感謝します!