Я нашел действительно хорошую статью с функцией, которую хочу добавить на страницу, но застрял весь день с одной маленькой ошибкой. Для справки: находится здесь .
Все работает, единственное, чего не происходит, это то, что веб-страница index.php не обновляет изменения, сделанные в размещенном массиве php. Может ли кто-нибудь взглянуть на мой код и сказать, есть ли у меня опечатка или пропущена часть статьи?
Файл моего массива - selectedSystemStateResults.php
<?php
$selectedSystemStateResults = ["cart", "dogsss", "cows", "zebra", "snake"];
Файл сценария PHP моего сервера - selectedSystemState-script.php
<?php
header("Cache-Control: no-cache");
header("Content-Type: text/event-stream");
// Require the file which contains the $animals array
require_once "selectedSystemStateResults.php";
// Encode the php array in json format to include it in the response
$selectedSystemStateResults = json_encode($selectedSystemStateResults);
echo "data: $selectedSystemStateResults" . "\n\n";
flush();
echo "retry: 1000\n";
echo "event: selectedSystemStateResultsMessage\n";
Веб-страница на стороне моего клиента - index.php
<?php require "selectedSystemStateResults.php"; ?>
<html>
<body>
<?php foreach ($selectedSystemStateResults as $selectedSystemStateResult) : ?>
<li><?php echo $selectedSystemStateResult; ?></li>
<?php endforeach ?>
</ul>
<script src="/selectedSystemState-script.js"></script>
</body>
</html>
Мой файл JavaScript - selectedSystemState-script.js
let eventSource = new EventSource('selectedSystemState-script.php');
eventSource.addEventListener("selectedSystemStateResultsMessage", function(event) {
let data = JSON.parse(event.data);
let listElements = document.getElementsByTagName("li");
for (let i = 0; i < listElements.length; i++) {
let selectedSystemStateResults = listElements[i].textContent;
if (!data.includes(selectedSystemStateResults)) {
listElements[i].style.color = "red";
}
}
});
Я прочитал это и перечитал это в течение прошлых 8 часов и чувствую себя действительно застрявшим. Кто-нибудь видит какие-либо вопиющие опечатки в php или javascript или учебник может быть неправильным?
Прошу прощения за опечатку, которая была у меня в именах файлов в моем неотредактированном оригинальном сообщении. В каталоге отображаются все файлы с правильными именами.