2 回答

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
一個(gè)詞:國(guó)家。
您的 HTML 頁(yè)面沒(méi)有顯示正確的按鈕顏色,因?yàn)槟鷽](méi)有在頁(yè)面刷新之間維護(hù)狀態(tài)。就目前而言,即使您在燈已經(jīng)亮起時(shí)加載頁(yè)面,它仍然不會(huì)向您顯示綠色按鈕。
最簡(jiǎn)單的解決方法是使用 JS 維護(hù) cookie 或本地存儲(chǔ)中的燈光狀態(tài),在頁(yè)面加載時(shí)讀取此狀態(tài),然后為按鈕顯示適當(dāng)?shù)念伾?/p>
// on clicking the button, do this:
localStorage.setItem('isLightOn', '1');
// and on page load, do this:
if (localStorage.getItem('isLightOn') === '1') {
$('button').addClass('selected');
} else {
$('button').removeClass('selected');
}
這樣做的缺點(diǎn)是它不能根據(jù)服務(wù)器反映燈光的當(dāng)前狀態(tài)。
為了始終在頁(yè)面中顯示正確的燈光狀態(tài),您需要一種機(jī)制來(lái)從服務(wù)器查詢燈光的當(dāng)前狀態(tài)。然后您可以從服務(wù)器讀取狀態(tài),然后顯示相應(yīng)的 HTML。
您甚至可以將其放入索引文件中。調(diào)用它index.php并使用與您的 中相同的內(nèi)容index.html,并添加一些 PHP:
<?php
# Let's assume this returns `true` when light is on, and `false` is it's off.
$lightState = @file_get_contents('http://1.1.1.1/cgi-bin/output?username=abcd&password=cdef&action=read&pin=relay');
if ($lightState == true):
?>
<button class="button selected">Lights On</button>
<?php
else:
?>
<button class="button">Lights On</button>
我可能對(duì)語(yǔ)法有點(diǎn)生疏,但這就是總體思路。希望有幫助!

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以將其存儲(chǔ)state
在本地存儲(chǔ)中
localStorage.setItem("state", 1); //on
然后在頁(yè)面加載/刷新時(shí)您可以檢查它
if(localStorage.getItem("state") == 1){ //activate green button function }
添加回答
舉報(bào)