franciskane Ответов: 1

Динамическая загрузка данных в javascript


У меня есть некоторый код, который я покажу ниже, и я хочу динамически загружать некоторые изображения с помощью javascript. Загружаемые изображения поступают из моего скрипта python и будут обрабатывать некоторые данные каждые 3 часа после завершения процесса из python. Затем выходное изображение отображается на веб - сайте. Поэтому ввод изображений должен быть динамическим.


Приведенный ниже код-это просто царапина, потому что у меня нет никаких предварительных знаний о том, как использовать javascript. и
let listofImages
отчасти это то, как я "вручную" загружаю изображения. любая помощь будет очень признательна.

Что я уже пробовал:

<script>
function playImages(parameter) {
var path = "";
if(parameter == "precip") {
path = "path to the precip folder" 
else if(parameter == "temp") {
path = "path to the temp folder"
} else {
path = "path to the wind folder"
}
let listOfImages = [ 
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00000.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00100.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00200.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00300.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00400.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00500.png",
"pyqgis-ops/PrecipRate/prate_rpnprate-postwrf_d01_20180923_0600_f00600.png"
];

let currentKey = 0;
let sizeOfImages = listOfImages.length;

setInterval(function(){
let strSplit = listOfImages[currentKey].split('-');
let removeOtherText = strSplit[1].replace("postwrf_d01_","").replace(".png","");
let dateSplit = removeOtherText.split('_');

$("#img-container").attr('src', listOfImages[currentKey]);
$("#img-container").attr('data-key', currentKey);
$("#date").text(dateSplit[0] + ' ' + dateSplit[1] + ' '  + dateSplit[2]);
currentKey = currentKey + 1;

if(currentKey == sizeOfImages) {
currentKey = 0;
}
},1500);
}

playImages("precip");
let strSplit = "prate_rpnprate- postwrf_d01_20180923_0600_f00000.png".split('-');
let removeOtherText = strSplit[1].replace("postwrf_d01_","").replace(".png","");
let dateSplit = removeOtherText.split('_');
console.log(dateSplit[0]);
console.log(dateSplit[1]);
console.log(dateSplit[2]);

</script>


В моем html это та часть которая обрабатывает этот js код:
<span id="date"></span>
<img src="" id="img-container" width="650" height="700" data-key="0" />


То обрабатывает выходные данные строки в зависимости от имени файла изображения

Afzaal Ahmad Zeeshan

И в чем же проблема?

franciskane

Я просто ellaborate здесь. Мой скрипт python обрабатывает 3 параметра (количество осадков, ветер и температура. все они сохраняются в виде изображений), и все они сохраняются в подпапках внутри моего var/www/html (т. е. /var/www/html/ops/Prate/). Я хочу знать, как загрузить выходные данные моего скрипта на мой веб-портал с помощью java script. Я не хочу определять имена файлов, потому что они должны быть "динамическими", то есть то, что обрабатывается скриптом. это будет показано на моем портале. Извините за грамматику. английский не мой родной язык

Afzaal Ahmad Zeeshan

Создается впечатление, что вы хотите проверить каталоги, а затем получить результаты из файлов. Так ведь?

Возможно, вам нужно проверить, как вы можете использовать справочники каталогов или файлов. :-) Вы используете PHP в фоновом режиме?

#realJSOP

Вы не можете сканировать папки на стороне сервера с помощью javascript, потому что это клиентская технология.

Afzaal Ahmad Zeeshan

Вы не можете, вот почему я спросил, использует ли он JavaScript или PHP на стороне сервера, чтобы он мог проверить каталоги.

franciskane

Да. Но файлы, загружаемые js., меняются каждые 3 часа или каждый раз, когда я запускаю свой скрипт python.

Я не использую PHP здесь. Я просто использую PHP для входа на свой сайт, и все.

1 Ответов

Рейтинг:
1

#realJSOP

Если бы это был я, я бы установил файлы со статическими именами и скопировал самые новые файлы (которые генерирует скрипт python) в файлы со статическими именами. В этот момент вы просто загружаете одни и те же имена файлов каждый раз, что полностью устраняет необходимость сканировать папку.


franciskane

Я не могу этого сделать, потому что мне нужны имена файлов. Я использую их, чтобы предоставить дополнительную информацию об изображении. Как вы можете видеть из приведенного выше кода. Но спасибо за ваше предложение

#realJSOP

Использование имен файлов для предоставления информации - заведомо плохая идея. Напишите новый скрипт python, который сохранит ваши данные в реальной базе данных - это единственное решение вашей проблемы на языке reaql.

franciskane

Это все еще плохая идея, если мой веб-портал действительно не будет доступен в www?. Он просто доступен в сети здесь, в нашем офисе

#realJSOP

Независимо от его предполагаемого использования, есть гораздо лучшие способы сделать то, что вы пытаетесь сделать.

Учитывая, что у вас уже есть скрипт pythong, который создает файлы, нет никаких причин, по которым вы можете переписать скрипт python, чтобы все еще генерировать файлы, но поместить "информацию" в базу данных. За то время, что вы потратили, отвечая на мой ответ, вы могли бы уже осуществить такое изменение и продолжить остальную часть проекта.