Newsgroup: it.comp.lang.javascript
Titolo: Chat Push

Ho implementato una chat in ASP, che per aggiornare il contenuto della
finestra usa il classico refresh ogni tot secondi.
Come faccio ad aggiornare la pagina solo quando effettivamante cambia il
contenuto?
Grazie,
Simone

Il Mon, 15 Jan 2001 12:12:42 GMT, Simone ha scritto.....

Non credo si possa fare in ASP, e comunque devi chiedere in it.comp.www.asp, 
JavaScript lavorando solo sul client non può comunque sapere se i testi sono 
stati aggiornati sul server.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------

Ho scritto su javascript proprio perchè so che in ASP non è possibile farlo,
speravo che fosse possibile una sorta di comunicazione diretta tra client in
javascript
Grazie,
Simone


 
Purtroppo no, una comunicazione fra client richiederebbe comunque un'iterazione 
fuori dal browser, quindi accesso a protocolli HTTP (ad esempio) che sono oltre 
le possibilità di JavaScript.


Non mi sapresti indirizzare su una tecnologia che possa andare bene per il
mio caso?
Grazie,
Simone


Oppure, non ci sarebbe un metodo con jscript per interpretare una pagina
html?
Nel senso: io con ASP posso creare una pagina che risponde con 1 se c'è
qualcosa di nuovo e 0 se non ce n'è, se riesco ad interpretarlo con js e gli
dico di refreshare quando trova 1 ho risolto.
Si può fare questo?
Grazie ancora,
Simone

 mio caso?
La tecnologia push appunto, ma non saprei nemmeno da dove cominciare.
Altrimenti ho visto molte chat fatte in JAVA...


Il Tue, 16 Jan 2001 17:47:35 GMT, Simone ha scritto.....

Si può fare di meglio.
Dato che usi ASP cosa ti vieta di scrivere (reponse.write) un META-REFRESH 
quando dovresti scrivere "1" da qualche parte?
Ma non risolvi comunque il tuo problema, per sapere se è da refreshare devi 
comunque interrogare il server per chiedergli "1 o 0", e tanto vale che 
refreshi.
p.s. Spero che non ci sia qualche Accademico della Crusca fra i lukers! :-)


 ha scritto nel messaggio
news:XO%86.66419$eB2.5...@news.infostrada.it...

[]
Se il problema e' di evitare all'utente il fastidio di reload inutili
durante la visualizzazione della pagina, si potrebbe risolvere con un
iframe/ilayer nascosto nella pagina e una pagina asp di controllo.
Utilizzare una variabile application che viene incrementata ad ogni
modifica dei contenuti sul server.
Aggiungere un iframe/ilayer nascosto sulla pagina dove caricare la
pagina ASP di controllo.
---------nella pagina principale-----
<SCRIPT LANGUAGE=javascript>
<!--
pluto=<%=application("valore")%>;
function test(){
 if (document.layers) {
  document.layers.nasc.src="provaGlobalCtr.asp";
  contr=window.pippo;
 }
 else {
  window.frames.nascosto.location.reload(true);
  contr=top.frames.nascosto.pippo;
 }
 if (pluto<contr) location.reload(true);
 setTimeout('test()',5000)
}
// -->
</SCRIPT>
</HEAD>
<BODY onLoad="test()">
<iframe name="nascosto" id="nascosto" src="provaGlobalCtr.asp"
style="position: absolute;visibility:hidden"></iframe>
<layer name="nasc" src="provaGlobalCtr.asp" left='300'
visibility='hide'></layer>
----------------
-----pagina di controllo ctrGlobal.asp-----------
<%@ Language=VBScript %>
<SCRIPT LANGUAGE=javascript>
<!--
pippo=<%=application("valore")%>;
document.write(pippo)  // solo per controllo visivo di funzionamento
// -->
</SCRIPT>
--------------------------------
Cosi' funziona con IE5.0 NS4.51 e NS6.
Puo' servire?
Saluti, Paolo


si basa su Java + Javascript 1.0 (la Microsoft non č poi cosě brutta,
cattiva ed elitaria) 
-- 
-----BEGIN GEEK CODE BLOCK-----
Version 3.1 (with proprietary extensions)
Comments: waiting for version 4.0 ;)
GE/M/S/O d- s:--- !a C++++()>$ UL P+>+++ L+>++ e w++>$ N++ o-- K- W++ O?
M? V? PS++ PE- Y+>+++ PGP++ t+ 5? X++(+) R tv--  b++>++++ DI++ D++ G-- e
h! !r xy** ------END GEEK CODE BLOCK------

 cattiva ed elitaria)

tra client in javascript
Remote Scripting è proprio questo: comunicazione diretta tra ASP e 
Javascript. Eseguire funzioni di una pagina ASP da uno script, in 
modalità sincrona (chiama e aspetta la risposta senza fare altro nel 
frattempo) o asincrona (chiama la funzione e ricevi la risposta come 
evento). Richiede un browser con supporto Java e Javascript 1.0 o 
superiore, e richiede che sul server siano attivate le inclusioni di 
file (direttiva <!--#include-->)


è splendido questo script!!! era proprio quello che cercavo!
Un solo problema, per me non indifferente, lo devo adattare al mio caso e
quindi rimaneggiarlo, ma vorrei prima capire bene se ho capito il
funzionamento.
Provo ad interpretarlo :
<SCRIPT LANGUAGE=javascript>
<!--
pluto=4;
function test(){
 if (document.layers) {                           ------ Netscape
document.layers.nasc.src="test.asp";
  contr=window.pippo;
 }
 else {
  window.frames.nascosto.location.reload(true);        ----- Internet
explorer
  contr=top.frames.nascosto.pippo;
 }
--------- Ecco, ma ora la variabile contr cosa contiene? Il risultato della
pagina test.asp, quindi il valore di pippo?
if (pluto<contr) location.reload(true);
 setTimeout('test()',5000)
}
// -->
</SCRIPT>
</HEAD>
<BODY onLoad="test()">
<iframe name="nascosto" id="nascosto" src="test.asp"
style="position: absolute;visibility:hidden"></iframe>
<layer name="nasc" src="test.asp" left='300'
visibility='hide'></layer>
dove devo caricare invece il contenuto dell apagina prima del refresh?
Normalmente nel body o devo mettere un' altro layer?
Grazie, e perdonami per l'ignoranza..... ;(
SImone

 Normalmente nel body o devo mettere un' altro layer?
Nella tua pagina cosi' com'e' (se funziona bene) devi togliere qualsiasi
altro reload e fare le modifiche come riportate sopra; cosi' dovrebbe
funzionare.
Saluti, Paolo

Che tu sappia, in questo modo riesco comunque a tenere attiva la sessione
ASP?
Simone

 ASP?
Non c'e' nessuna interferenza nelle sessioni; il cookie viene inviato
regolarmente nella testata.
Saluti, Paolo