2017-07-31 36 views
2

,所以我只是想知道如果我能做到这一点:检查基于时间间隔变量的变化(PHP + HTML)

一个基本的网站,没有什么就可以了,但是4倍不同的照片,有不同的优先级,这表明实际显示图像的时间跨度(lvl1 = 1min,lvl2 = 3min,lvl3 = 10min ...等等) 我怎么能这样做与HTML和PHP ..我不知道如果答案是真正的基本,但我似乎不能让我的头在附近。 是否运行与php代码并行的html代码,或者在php中无限循环停止整个html代码?

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

我想我不明白html代码如何运行..

感谢任何人的帮助。

+0

你试过了什么?显示代码... – Nawin

+0

“实际显示图像的时间跨度”?超时后img会发生什么?你想隐藏它? – minhhn2910

+0

它不清楚!实际上你想要什么。请确切地说 –

回答

-1

为了您的目的,您可以使用AJAX这是更新您的代码在给定的时间间隔。 如果你想设置的东西在一个计时器,你可以使用JavaScript的的setTimeout的setInterval方法:

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

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

所以你的情况,将工作是这样的:

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

至于阿贾克斯去,看到jQuery的ajax()方法。如果你运行一个时间间隔,没有什么能阻止你从代码中的其他地方调用相同的ajax()。

再次表达需要请让我知道。

0

在WWW的上下文(和简化位):

  1. PHP运行
  2. PHP的输出由web服务器接收
  3. Web服务器发送输出到浏览器
  4. 浏览器显示的页面

你可以看一下the current time并用它来决定什么<img>标签发送给浏览器。

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

如果您想更改浏览器中显示的图片,您需要客户端代码。对于所有实际目的来说,这意味着JavaScript

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

+0

噢..我想学习js不会那么糟糕。感谢您的回答。帮助我很多:) –

2

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

0

了解位,这可能是你所需要的

  1. PHP代码将全部四个图像发送到浏览器中img标签。您可以为每个标记的属性之一添加特殊性<img data-priority="1" src...
  2. 当此代码在浏览器中完全加载时,您将在javascript中启动一个计时器,然后查看当前时间并从加载时间中减去计数并获取毫秒数。你可以在JavaScript中使用日期和时间函数来获得所有这些。
  3. 在每个时间差异你检查是否需要图像被隐藏或显示,然后显示或隐藏它。看看jQuery的显示和隐藏功能的HTML节点。

如果您想显示一张图片,只需将它们全部隐藏在开头,然后根据您拥有服务器端或客户端的任何规则显示所需图片。 PHP将帮助您缩小服务器上的规则并仅向客户端发送所需的数据,但是您可以使用简单的html来隐藏和显示它是否不重要,并且您将避免多次调用服务器以获取图像。

如果这是您正在寻找的场景,那么在jsfiddle或带有示例图片的代码中尝试。你可以从http://lorempixel.com/得到4个样本图像,并使用JavaScript来玩它。