Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
HTML, cgi, refresh рисунков, CGI генерация рисунков.
 
есть perl CGI скрипт.

#!/usr/bin/perl

use CGI qw/:standard/;
print header,
start_html();

print '<html>';
print "\n";
print '<head>';
print "\n";
print '<title> Traffic description </title>';
print "\n";
print '<meta http-equiv="expires" content="0" />';
print "\n";
print '</head>';
print "\n";
print '<body bgcolor="black" text="#FFFFFF">';
print "\n";
print '<form method="post" action="/cgi-bin/graphall.cgi" enctype="application/x-www-form-urlencoded">';
print "\n";
print '<input type="submit" name=".submit" /><div></div></form><hr/>';
print "\n";
system('/var/csflows/drsh/alls.sh 1h');
print "\n";
print '<IMG SRC="../mrtg/all.gif" ALT="day">';
print "\n";
print '</html>';

Вызываемый скрипт '/var/csflows/drsh/alls.sh 1h' строит графические изображения по трафику (впрочем это не важно). Необходимо сделать так, чтобы после нажатия кнопки "submit" рисунок в браузере обновлялся в любом случае, так как предполагается, что в форме можно будет выбирать промежуток времени за который будет строиться график.    
Есть идеи? Любые идеи и методы приветсвуются включая java и прочие. В принципе сейчас это работает,  но не удобно нажимать refresh в браузере (например в IE F5) каждый раз.  

Спасибо.
 
Ура!!! Заработало.
Уже нашел сам здесь
http://www.thescripts.com/forum/thread92190.html

Теперь скрипт выглядит так

#!/usr/bin/perl

use CGI qw/:standard/;
print header,
start_html();
print '<script type="text/javascript">';
print 'function refreshImages(){';
print 'var search="?"+(new Date()).getTime();';
print 'for(var i=0;i<document.images.length;document.images[i++].src+=search);';
print '}';
print '</script> ';
print '<html>';
print "\n";
print '<head>';
print "\n";
print '<title> Traffic description </title>';
print "\n";
print '<meta http-equiv="expires" content="0" />';
print "\n";
print '</head>';
print "\n";
print '<body onload="refreshImages()">';
print '<body bgcolor="black" text="#FFFFFF">';
print "\n";
print '<form method="post" action="/cgi-bin/graphall.cgi" enctype="application/x-www-form-urlencoded">';
print "\n";
print '<input type="submit" name=".submit" /><div></div></form><hr/>';
print "\n";
system('/var/csflows/drsh/alls.sh 1h');
print "\n";
print '<IMG SRC="../mrtg/all.gif" ALT="day">';
print "\n";
print '</html>';

Простой обман браузера. :)
Получается, что ссылка на рисунок каждый раз разная
типа первый рефреш:
http://192.168.100.19/mrtg/all.gif?1162898579512
Второй рефреш
http://192.168.100.19/mrtg/all.gif?1162898727202
Как-бы ссылки разные, значит и рисунки разные
:)
Есть у кого еще идеи?
 
почитай по "Pragma Nocache" и аналогичным метатегам -- это правильнее
 
Спасибо.
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
Работает на ура. Но...
Только в Firefox-е. В IE и Opera - нет.
В IE не помогает даже рекомендация
http://support.microsoft.com/kb/222064
хотя, я не понимаю почему.
Оставил как есть.
 
для этого на до ещё задать прагмы директивами http (в heder'е)
 
Цитата
для этого на до ещё задать прагмы директивами http (в heder'е)
Не понял.  Я в HTML профан.
Разве этого не достаточно?

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"><head><title>Traff Stats. Created from NetFlow data Source</title>
<link rev="made" href="mailto:mymail%40sss.com" />
<base href="http://192.168.100.19/cgi-bin/graphall.cgi" />
<meta name="keywords" content="NetFlow - rulez forever" />
<meta name="PRAGMA" content="NO-CACHE" />
</head><body bgcolor="black" text="#FFFFFF"><form method="post" action="/cgi-bin/graphall.cgi" enctype="application/x-www-form-urlencoded">
 
http заголовок
Код
Pragma: no-cache


http://www.google.ru/search?q=http+pragma+nocache

т.е. не только мета теги, но и прагма в заголовке http, тогда все браузеры не будут кэшировать
 
Спасибо. Оставлю все как есть.
Я чег-то не понимаю.
Чтобы втыкнуть и реализовать много времени может понадобиться.
Вопрос корректности реализации cgi скрипа не принципиален, статистика для админов, главное - функционал.
HTML мне не настолько интересен и не нужен, чтобы понять его, знать нюансы работы различных браузеров и читать по нему RFC.
Страницы: 1
Читают тему