2017-07-31 119 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來玩它。