Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από karnesi » 26 Φεβ 2007 01:43

το σενάριο εχει ώς εξής :

Ο Client Ζητάει το site το οποιο δεν εχει AUto refresh πουθενά.
Θέλω κάποια στιγμή που αλλαξε η τιμή μιας μετοχής να ενημερώσω όλους τους επισκέπτες που είναι στην σελίδα ετσι ώστε να δούνε την νέα τιμή της μετοχής.
Δεν θέλω να κάνει refresh ανα 20 seconds πχ και να μου κουράζουν τον server.
Μια μετοχή μπορεί να μην αλλάξει σε όλη την διάρκεια της Ημέρας αρα αυτος που θα μπεί το πρωί δεν χρειάζετε να μου ξανατραβήξει δεδομένα.

Βασικά το εχω δει σε Intranet σε κάτι φίλους αλλα δεν μου λένε πως το κάνουν.
Η σελίδα δεν εχει java applet είναι καθαρή.

πως στον διάλο μπορεί να γίνει αυτο μήπως αγνοώ κάτι μου εχουν σπάσει τα νευρα.
σε οποιον αρέσουν τα δύσκολα εδώ είναι το θέμα μας :hammer:

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από skeftomilos » 26 Φεβ 2007 02:51

Θέλεις δηλαδή ο server να ενημερώσει τον client για την αλλαγή, χωρίς ο client να κάνει request με δική του πρωτοβουλία. Φοβάμαι πως είναι αδύνατο. Είναι θεμελιωδώς αντίθετο στον τρόπο λειτουργίας του Web.

Οι φίλοι στο Intranet κατά πάσα πιθανότητα χρησιμοποιούν AJAX.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από fafos » 26 Φεβ 2007 04:18

Epeidh etyxe na kano kati analogo gia enan pelath.. h diafora einai oti zhtaei apo mia array kapoia banners... me mia allagh mporeis na kaneis thn douleia sou..

Opos eipe o skeftomilos xreiazomaste thn vohtheia ths ajax..

Feiaxnoume ena arxeio me onoma refresh.js:

Κώδικας: Επιλογή όλων

function makeHttpRequest(url, callback_function, return_xml)
{
   var http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType) {
           http_request.overrideMimeType('text/xml');
       }

   } else if (window.ActiveXObject) { // IE
       try {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
           try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
       }
   }

   if (!http_request) {
       alert('Unfortunatelly you browser doesn\'t support this feature.');
       return false;
   }
   http_request.onreadystatechange = function() {
       if (http_request.readyState == 4) {
           if (http_request.status == 200) {
               if (return_xml) {
                   eval(callback_function + '(http_request.responseXML)');
               } else {
                   eval(callback_function + '(http_request.responseText)');
               }
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }
   http_request.open('GET', url, true);
   http_request.send(null);
}

function loadBanner(xml)
{
    var html_content = xml.getElementsByTagName('content').item(0).firstChild.nodeValue;
    var reload_after = xml.getElementsByTagName('reload').item(0).firstChild.nodeValue;
    document.getElementById('ajax-banner').innerHTML = html_content;

    try {
        clearTimeout(to);
    } catch (e) {}

    to = setTimeout("nextAd()", parseInt(reload_after));


}

function nextAd()
{
    var now = new Date();
    var url = 'refresh.php?ts=' + now.getTime();
    makeHttpRequest(url, 'loadBanner', true);
}

window.onload = nextAd;

Katopin ena axeio refresh.php opou ekei dinoume ta dedomena pou theloume na emfanizei... opos proeipa ta dinei me array.. an gnorizeis ligo php mporeis na pairneis ta dedomena apo vash h apo opou allou epithymeis:

Κώδικας: Επιλογή όλων


<?php
// an array of banners
$banners = array &#40;
    'fafos',
    'freestuff',
    'totos',
    'papas',
    'ragas',
    'papala'

&#41;;
// pick a random one
$html = $banners&#91;array_rand&#40;$banners&#41;&#93;;

// send XML headers
header&#40;'Content-type&#58; text/xml'&#41;;
echo '<?xml version="1.0" ?>';

// print the XML response
?>
<banner>
    <content><?php echo htmlentities&#40;$html&#41;; ?></content>
    <reload>5000</reload>
</banner>
Sthn array exoume ta dedomena mas kai sto <reload>5000</reload> orizoume ana posa miliseconds theloume na ginete h ananeosh

To epomeno vhma einai na kalesoume ta dedomena sthn selida mas..

Topothetoume to script sto head:

<script type="text/javascript" src="refresh.js"></script>

kai opou theloume na emfanizoume ta dedomena mas auto to div:

<div id="ajax-banner"></div>

An theloume mporoume na dosoume kai style:

<style type="text/css">
#ajax-banner {
background: #ceeffd;
border: 1px solid black;
width: 100px;
height: 50px;
text-align: center;
}
</style>

Teleiosame... DEMO EDO
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από karnesi » 26 Φεβ 2007 11:08

o skeftomilos ( poy ton exo parakolithisei stis apantiseis toy ) to epiase amesos :))))))
sostos o skeftomilos.

esi file den klatalabes ti leo den thelo ana X milisconds kai ana Z seconds thelo OPOTE Thelo ego :))))))


loipon skeftomile ego omos tiranithika peripoy 4 xronia me ayto to thema kai to eftiaxa telika. apla anarotieme mipos kai anakalipsa ton troxo kai ithela na do an iparxei allos tropos eyxaristo gia thn apantisi soy.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από Rapid-eraser » 26 Φεβ 2007 11:34

me php to ekaves afto ?
kai milame pavta gia arxitektoviki client - server opou o client eivai evas browser etsi ?

afto pou eftiakses esy o server kavei asygxrova call stov client xoris va ksekivisei to session protos o client e?
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από karnesi » 26 Φεβ 2007 11:42

ta to po me paradeigma mias kai apo orologies den ta pao kala.
eime empeirikos

exo enan server.
ekei exo metoxes poy allazoyn
mpenoun 10000 xristes.

alos mpenei stis 12:00 allos mpenei stis 12:30 allos mpenei stis 5:00 to apogeyma.
se kanenan xristi den exei kanei refresh o browser
xefnika stis 7.00 mia metoxi allazei.
o server moy stelnei entoli se oloys toys sindemenoys xristes ( ie,mozilla,opera ) kai aytomata emfanizete i nea timi tis metoxis stin othoni toys.
etsi glitono to bandwidth poy plirono para poli akriba an to xeperaso sthn forthnet. :)

i selida einai Html + havascript + baneraki se flash.
den exei katolou asp h php mesa.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από Rapid-eraser » 26 Φεβ 2007 11:49

karnesi distixos apo ta legomeva sou kataligo sto simperasma oti apla favtazese kapoia pragmata.

Mporeis va doseis to paradigma me proof of concept pos o server os diamagias stelvei stov client data xoris aftos va exei kavei prota me opoiodipote tropo stov server ?

Apo tnv stigmi pou les oti kapoios xristis eivai sivdedemevos stov server simevei
pos exeis kapoio diarkes stream avoikto metaksi tou client kai tou server

ti diaforetiko dld protivei n diki sou lisi se sxesi me afta pou grafoume tosi ora...

to stream dev to exeis meso javascript alla to exeis meso flash ? pali to idio pragma kaveis pavo kato giati exeis eva diarkes stream meso tou flash ... dev eivai giavis eivai giavakis
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
karnesi
Δημοσιεύσεις: 108
Εγγραφή: 11 Φεβ 2007 19:54

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από karnesi » 26 Φεβ 2007 12:35

poli orea xerome poy ayta poy ftiaxno ypokinte sthn sfaira tis fanmtasias gia merikoys
oso gia na soy liso tis apories

den kano diarkos request kai ayto mporeis na deis otan h etatereia to anebasei.
mou aresi o tropos poy skeftese.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από Rapid-eraser » 26 Φεβ 2007 12:39

ama to avebasei n eteria sivexizoume tnv sizitisi tote.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από panosru » 26 Φεβ 2007 15:13

karnesi esto oti o x os client syndeete sthn istoselida sou, h opoia den exei kapoio dynamic contet opos ysxirizese, kai thelei na dei tis metoxes tou. Kata thn diarkeia pou parakolouthei tis metoxes, h timh kapoias metoxhs alazei, h selida omos den exei kapoio autoreload opos exeis anaferei, alla efoson h timh ths metoxhs exei alaksei prepei aytomata na enhmeroseis kai c ton x, o opoios parakolouthei tis metoxes tou, gia thn allagh ths timhs ths metoxhs.

Ok me to senario, efoson h selida den exei kapoio dynamic periexomeno, na ypotheso pos den yparxei kapoa database apo piso, opote na theoriso oti oi metoxes kai ta dedomena tous fortonontai apo eksoteriko paragonta, px kapoio xml arxeio h kapoio url to opoio epistrefei thn timh ths metoxhs.

Ok kai edo, o client, einai apla enas client, ena dumy prama opou h douleia tou einai na emfanizei dedomena ston teliko xrhsth kai molis ta emfanisei stamataei h douleia tou eos thn epomenh fora pou kanoume kapoio requst. O client den exei thn dynatotyta apo mono tou, xoris na to zhthsoume emeis dhladi, na kanei kapoies energeies. Sto shmeio ayto erxete na bohthisei h AJAX me ta asynxrona requst ths (Asynchronous JavaScript And XML). Akoma kai edo pali o client einai apla enas client kai den mporei na kanei tipota monos tou an den tou to poume, esto oti tou to leme mia fora, ok kanei ton elenxo ayto kai tsekarei na dei an yparxoun alages stis times kai an nai tis epistrefey eidalos afhnei ta pramata os exoun. Ok, egine mia fora, meta omo ti? Gi' ayto pou zhtas esy, na exeis diladi ena eidos live data show, den prepei na kanei elenxo mia fora alla mia fora sto toso, opou to toso einai o xronos o opoios apotelei to diasthma opou yparxei apo to ena request sto allo. Opote sosta sto ethese o fafos. An pali den thes na kanei elenxo ana y xroniko diasthma tote poly apla mporeis na exeis kapoy sthn selida ena button h ena link opou na exei ena mynhma tou typou 'Pathste edo gia tyxon ananeosh ton timon' kai na einai sthn krish tou xrhsth gia to pote kai kathe pote tha pathsei to koumpi (an den thes na to pataei synexeia mporeis na tou baleis ena time delay eos to epomeno pathma, tote omos tha xaseis thn ideologia tou live).

PS: prosopikh symboulh prospathise na eisai ligotero eironikos giati sto kato kato esy rotas oxi emeis, kai mono quiz den einai to thema ayto, oxi tpt allo alla an sou phre ayto 4 xronia gia na to skeyteis tote krima pou exases tosa xronia apo thn zoh sou, ena google search isos sou eperne 4 lepta.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από fafos » 26 Φεβ 2007 15:16

Auto pou zhtas yparxei me syndromh pou plhroneis se kapoies analoges etereies kai emfanizete me java (oxi javascript).. kalytera na plhroneis to bandwidth para thn syndromh :)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από panosru » 26 Φεβ 2007 15:40

me java aplet, sto kato kato an sou peytei akribh h forthnet phgaine allou :P

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από skeftomilos » 26 Φεβ 2007 15:49

Αν μπορούσε ο server να στέλνει σε κάθε client ότι ήθελε όποτε ήθελε, τότε με το που θα έμπαινες στο Internet θα πλάκωναν δεκάδες viagra σελίδες η μία μετά την άλλη, θα άνοιγαν 50 popups σε δέκα δευτερόλεπτα, και θα γινόταν download και εγκατάσταση 99 προγραμμάτων. Γενικώς δε θα υπήρχε το Web όπως το ξέρουμε, γιατί θα ήταν παντελώς άχρηστο για τον οποιονδήποτε. :roll:
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από cpulse » 26 Φεβ 2007 15:55

Θα μπορούσε να γίνει και με PHP αυτό..

Κώδικας: Επιλογή όλων

while &#40;true&#41; &#123;
  if &#40;$_SESSION&#91;'stopit'&#93;&#41;&#41; break;

  if &#40;have_news&#40;&#41;&#41; &#123;
    echo "news...";
    flush&#40;&#41;;
  &#125;
  set_time_limit&#40;60 + 1&#41;;
  sleep&#40;60&#41;;
&#125;
και ίσως από ένα frame στο οποίο να υπάρχει ένα form να ορίζεται το $_SESSION['stopit']

Αλλά και πάλι δύσκολο...
Τώρα κατάλαβα γιατί ο karnesi θέλει τόσο πολύ το IRC. Στην περίπτωση του θα είχε τεράστιο όφελος ένα IRC client. Αλλά και πάλι μέχρι 100-200 connections αντέχει ένας μέτριος server. 10000 είναι υπερβολικό.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Quiz: Ειναι δυνατόν να γίνει αυτο και αν ναι πως?

Δημοσίευση από cpulse » 26 Φεβ 2007 15:59

Ή για να τα πούμε σε στυλάκι multithreaded programming..

if ($_SESSION['Terminated'])) break;

:wink:

karnesi μήπως μπαίνεις και με nick pro1965 ;

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες