每250 MS更新一次变量值

时间:2015-06-04 09:14:45

标签: javascript jquery

我在网站上忙于游戏。我目前正在注册。现在的重点是,我们希望让玩家在他们的Ingame笔记中加入代码,这样我们就可以验证某个帐户是否真的属于某人。

所以我编写了一个可以获取游戏注释的PHP类。现在我们还要做的一件事就是用这些笔记设置一个javascript变量。所以我可以在它们中搜索代码。

我想到的是做setInterval,然后在该函数中每250毫秒设置一次变量。那似乎有点困难。我的第一个猜测是,它有一些范围问题,使得setInterval之外的变量不可用。

这是我制作的JS:

var mission = "";
setInterval( function() { 
    var mission = "<?php echo Core\InGame::getNotes('TestPlayer');?>";
}, 250);
$("#mission").html(mission);

这么简单的代码怎么可能不起作用?

我确定了一些事情。

  • 我包含了jQuery。

  • 我已将代码放入JS文件中,该文件包含在内。

  • 我在此设置中调试了PHP代码(没有setInverval)。

有没有办法让这成为可能?

4 个答案:

答案 0 :(得分:4)

您无法在客户端执行PHP代码。这样做的方法是使用ajax或load()

调用php代码

<强> myscipt.php

<?php echo Core\InGame::getNotes('TestPlayer');?>

<强> myscript.js

setInterval( function() { 
    $("#mission").load('myscript.php');
}, 250);

注意,250 ms的间隔非常短,并且根据网络延迟不会每250 ms更新一次。尝试更长的间隔。

答案 1 :(得分:1)

您发布了PHP代码。

这个PHP一旦被解释并以HTML格式发送到浏览器,就会出现这样的结果:

var mission = "";
setInterval( function() { 
    var mission = "Hello";
}, 250);
$("#mission").html(mission);

setInterval内部的内容不会发生变化。在被发送到浏览器之前,它已被解释为服务器端,并且将永远是&#34; Hello&#34;。 PHP代码完全消失。所以你的间隔有效,但它总是设置相同的值......

答案 2 :(得分:1)

尝试

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 3 :(得分:1)

您可以将整个代码移到tgrget函数中;

        char letter;
        int score = 0;
        string hangWord;

        //input inputs
        Console.WriteLine("Welcome to the hangman game!");
        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine("Player 1 please enter a word.");
        hangWord = Convert.ToString(Console.ReadLine());
        char[] hangCharacters = hangWord.ToCharArray();
        char[] asteriskWord = hangWord.ToCharArray();
        string displayWord;

        foreach (char guess in asteriskWord)
        {
            asteriskWord[guess] = '*';
        }
        while (score < 5)
        {
            Console.WriteLine("Enter a letter please");

            Console.WriteLine();
            foreach (char guess in hangCharacters)
            {                //How do I write a loop that tests all values and if none are correct
                             //displays "You guessed incorrectly"?
                letter = Convert.ToChar(Console.ReadLine());
                if( guess == letter)
                {
                    Console.WriteLine("You guessed correctly!");
                    Console.WriteLine
                        //Also I don't know how to change the correct value      in the asteriskWord[] so that it displays
                        //only the character that was guessed in asteriskWord[]
                }

            }
        }
        Console.WriteLine("Your score is " + score);
        if (displayWord == hangWord)
            Console.WriteLine("You Win! Thank you for playing!");
        else
        {
            Console.WriteLine("Thank you for playing! Try again!");
        }