Thread Mit CGI und LWP Ausgabe vor Scriptende
(8 answers)
Opened by maral at 2014-04-06 11:15
Ich weiß nicht wie ich das Problem sonst beschreiben soll. Dynamisches Aufbauen der Seite? Dynamische Rückgabe? Vom Prinzip möchte ich mit Perl bei einem langlaufenden CGI-Script die ersten Ergebnisse im Browser sehen, bevor das langlaufende Script zum Ende kommt.
Hier der Problemcode. Wie kann man bei der Ausgabe der HTML-Seite die ersten Ergebnisse schon angezeigt bekommen, wenn LWP noch die letzten Webseiten teste. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #!/usr/bin/perl -w use strict; use warnings; use LWP::UserAgent; use CGI qw(param); use CGI::Carp qw(fatalsToBrowser set_message); set_message('There is a problem in the script.'); print "Content-type: text/html\n\n"; # Sehr lange URL-Liste my @url = ('','','','','',''); # Testurls sind hier im Formular des Forums entfernt worden, vermutlich um SPAM zu vermeiden (nehmt einfach die 4 funktionierende URLs und eine URL zu einer nicht existierenden Webseite # html head print '<html><head><title>Test</title></head><body>'; # loop foreach my $url (@url) { if (check_website($url) eq 'FEHLER') { print 'Fehler bei '.$url; } else { print 'ok' } print "<br />\n"; } # html foot print '</body></html>'."\n"; sub check_website{ my $url = shift; my $result = ''; my $agent = "UserAgent Test-Skript/v0.01"; my $ua = LWP::UserAgent->new(agent=>$agent); $ua->timeout(3); #Sekunden my $request = HTTP::Request->new('GET' => "$url"); my $response = $ua->request($request); if ( $response->is_success() ) { $result = "erfolgreich"; } else { $result = "FEHLER"; } return ($result); } |