根据时间间隔检查变量更改(PHP + HTML)

时间:2017-07-31 10:51:47

标签: php html

所以我只是想知道我是否可以这样做:

基本网站,没有任何内容,但有4张不同的照片,它们具有不同的优先级,表示实际显示图像的时间跨度(lvl1 = 1min,lvl2 = 3min,lvl3 = 10min ......等等) 我怎么能用HTML和PHP做这个...我不确定答案是否真的基本但我似乎无法理解它。 html代码是否与php代码并行运行,或者php中的无限循环是否会停止整个html代码?

我正在考虑创建一个无限的while循环,但我担心它最终会以某种方式使网站崩溃?

我想我不明白html代码的运行方式..

感谢任何帮助过的人。

4 个答案:

答案 0 :(得分:2)

正如OP提到的那样。你必须使用JavaScript。 PHP用于服务器端处理,一旦将最终输出发送到Web浏览器,您必须再次从Web服务器请求。您可以轻松地将AJAX用于您的目的。

答案 1 :(得分:0)

在WWW的背景下(并简化一点):

  1. PHP运行
  2. Web服务器
  3. 收到PHP的输出
  4. Web服务器将输出发送到浏览器
  5. 浏览器显示页面
  6. 您可以查看the current time并使用它来确定要发送到浏览器的<img>标记。

    您无法使用服务器端代码更改已在浏览器中显示的图像。代码已经运行了。除非浏览器发出新的HTTP请求,否则新代码将无法运行。

    如果要更改浏览器中显示的图像,则需要客户端代码。出于所有实际目的,这意味着JavaScript。

    您可以使用the timer functions在时间过后运行代码并DOM更改页面上已有的HTML元素。

答案 2 :(得分:0)

从您的问题中了解这可能是您需要的内容

  1. PHP代码会将所有四个图像以img标签发送到浏览器。您可以为每个标记的其中一个属性添加priotity,例如<img data-priority="1" src...
  2. 当此代码在浏览器中完全加载时,您可以在javascript中启动计时器,然后查看当前时间并从加载时间减去它并获得毫秒数。你可以在javascript中使用日期和时间函数来获得所有这些。
  3. 在每个时差,您检查是否需要隐藏或显示图像,然后显示或隐藏它。查看jquery show并隐藏html节点的函数。
  4. 如果要显示一个图像,只需将它们全部隐藏起来,然后根据服务器端或客户端的规则显示所需的图像。 PHP将帮助您缩小服务器上的规则并仅向客户端发送所需数据,但是您可以使用简单的html来隐藏和显示它是否非关键,并且您将避免多次调用服务器来获取图像。

    如果这是您正在寻找的场景,那么请在jsfiddle或带有示例图像的代码中尝试。您可以从http://lorempixel.com/获取4个样本图像,并使用javascript进行播放。

答案 3 :(得分:-1)

为了您的目的,您可以使用 AJAX ,它会在给定的时间间隔内更新您的代码。 如果您想在计时器上设置内容,可以使用JavaScript的 setTimeout setInterval 方法:

setTimeout ( expression, timeout );
setInterval ( expression, interval );

这里表达式是正常函数,超时和间隔是以毫秒为单位的整数。 setTimeout运行一次计时器并运行一次表达式,而setInterval将在每次间隔通过时运行表达式。

所以在你的情况下它会像这样工作:

setInterval(function() {
    //call $.ajax here
}, 5000); //5 seconds

就Ajax而言,请参阅jQuery的ajax()方法。如果你运行一个间隔,没有什么能阻止你从代码中的其他地方调用相同的ajax()。

请再说一遍,请告诉我。