Newsgroup: it.comp.lang.javascript
Titolo: onLoad di pagina non mia?

Domandina complicata, stavolta...(o almeno credo, visto che sapete tutto 
O_o)
Ho un servizio (non mio) a cui accedo tramite un interfaccia http.
In pratica chiamo una determinata pagina da una delle mie, la pagina esegue 
delle azioni e poi mi ritorna il risultato.
Il punto e'...io dovrei chiamare la stessa pagina piu' volte, 
consecutivamente, cambiando determinati parametri.
La cosa piu' ovvia che mi viene in mente e' avere una pagina A, chiamante, 
che chiama la pagina B, e quando B ha finito di caricarsi A chiama una nuova 
B. Ecco, esiste un trucco per sapere se la pagina che ho chiamato ha finito 
di caricarsi, tipo una specie di onLoad remoto?
Grazie :-)

 consecutivamente, cambiando determinati parametri.
Sě, ma: come richiami questa pagina? ti restituisce risultati? Dove li
metti tali risultati? sei in un frame nascosto?
Oppure semplicemente fai un qualcosa del tipo
window.onload=function() {//e qua chiami la pagina}
?
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 ?
Pensavo di usare la window.open, oppure di usare un iframe nascosto e 
cambiarne l'indirizzo tramite javascript...
Come funzionerebbe il
window.onload=function() {
???

 window.onload=function() {
E' la stessa cosa, non cambia nulla ...
ma non ti restituisce risultati oppure sì?
Perché non lo fai server-side? Tutti i linguaggi server-side hanno modo di
chiamare una pagina remota e catturare l'html risultante ...
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 di caricarsi, tipo una specie di onLoad remoto?
Su due piedi, e con i dubbi appena esposti, i modi che mi vengono in mente
sono i seguenti:
a) Apri la pagina in un frame/iframe, impostando l'onload sul tag. Questo non
è supportato da browser meno recenti (ad esempio IE5).
b) Chiami una pagina scritta in un quache linguaggio server side che si
preoccupa di fare una richiesta http remota alla pagina che desideri.
In questo modo puoi:
- parserizzare la pagina lato server, recuperare ciò che ti interessa,
eventualmente scrivere già nell'output codice javascript che viene eseguito
appena il risultato viene rimandato al tuo browser.
- chiamare la pagina server che si occupa di queste cose tramite
XmlHttpRequest, in modo sincrono (così lo script si blocca finché non ottiene
risposta, ma in questo caso è forse bene evitare) o asincrono, gestendo il
tutto con readystate.
Ovviamente l'uso di XmlHttpRequest è consigliato solo nel caso in cui il
contesto lo permette.
-- 
Chuck Norris interpreta la parte dello squalo ne "Lo squalo" con una pinna
attaccata alla schiena. Steven Spielberg pensava che, in questo modo, le
reazioni di puro terrore degli attori sarebbero state più realistiche. Al
termine delle riprese, comunque, Chuck Norris li mangiò.

 chiamare una pagina remota e catturare l'html risultante ...
Perche' non e' roba mia...
Vabbe', entriamo nel dettaglio:
Sito che fornisce un servizio di invio SMS.
Invio limitato ad un SMS alla volta.
L'SMS si invia facendo una chiamata HTTP Post con determinati parametri.
Il mio cliente vuole poter fare invii multipli. Cioe', lui indica 100 numeri 
ed 1 messaggio, e io devo inviare lo stesso messaggio a tutti i numeri.
La soluzione piu' ovvia e' creare una pagina X che, una volta aperta, invia 
un SMS tramite il protocollo di cui sopra.
Poi metto in Session l'array dei numeri, il messaggio, un indice del numero 
a cui sono arrivato, e la pagina X chiama se stessa finche' non ha scorso 
tutti i numeri ed inviato tutti i messaggi.
Il problema e' fare in modo che li invii uno per volta, per cui ogni volta 
che apre una finestra di invio deve aspettare la risposta, prima di 
riaprirla. Oppure prima di cambiare l'href di un frame...
Chiaro ora? :-)

 Si, mi restituisce dei risultati, ma in xml...
Beh, allora la soluzione proposta da Zer0 (xmlhttp) mi pare la piů valida


 Beh, allora la soluzione proposta da Zer0 (xmlhttp) mi pare la piů valida
Ma deve cmq passare dal server. Ancora non mi č chiaro come una pagina html
che serve per mandare sms restituisca un XML. Cos'č una sorta di webservice o
roba del genere? Mboh. Continua a essermi poco chiaro il quadro generale.
-- 
Chuck Norris taglia i grissini col tonno.

 roba del genere? Mboh. Continua a essermi poco chiaro il quadro generale.
neanche a me, ma ho preso per buono il fatto che restituisca xml ...


 roba del genere? Mboh. Continua a essermi poco chiaro il quadro generale.
Scelta tecnica del fornitore del servizio.
Senti, devo consegnare sta roba entro domani, deve essere compatibile il 
piu' possibile e oltretutto mi pagano pogo...non posso mettermi a fare lo 
schizzinoso ^^;;;
Quindi, lasciando perdere per un'attimo il fatto del perche' restituisca 
dell'XML...qual'e' il metodo piu' compatibile?
L'XMLHTTP mi sembra interessante, ma mi sa' di poco compatibile...o sbaglio?
(e voglio anche finire in fretta che voglio mettermi cinque minuti di la' 
sul divano a bermi un the cinque minuti...)

 chiari un paio di passaggi...
Ho visto che rispondi di la', quindi qui proseguo con una domanda 
differente.
Come si "genera" un carattere?
Cioe'...ho una stringa strRigaUno, una stringa strRigaDue, e voglio unirle 
in una terza strTesto.
Ovviamente tra le due stringhe va il 13-10...ma come si chiama la funzione 
javascript che dato un codice ascii restituisce il carattere corrispondente?
Grazie!

 sul divano a bermi un the cinque minuti...)
Lavori da casa? :P
-- 
Il bambino del Sesto Senso inizialmente doveva essere interpretato da Chuck
Norris. C'era solo un problema: Chuck Norris non vede la gente morta. La gente
morta però ha sicuramente visto Chuck Norris.

 javascript che dato un codice ascii restituisce il carattere corrispondente?
Mi pare mi pare String.fromCharCode(charCode)
-- 
Nando [?]
Apostolo della Prova

 sul divano a bermi un the cinque minuti...)
finire in fretta? la vedo male ... se non hai mai usato questo oggetto e
devi finire in fretta dimenticatene.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 devi finire in fretta dimenticatene.
Non portiamo sfiga, eh! ;-D

 Lavori da casa? :P
Yes. Un incubo ^_^;;;

 Grazie!
Nada.
-- 
A Chuck Norris non piace lo Zoo, perchè considera ingiusto rinchiudere gli
animali nelle gabbie. Invece di ucciderli a calci rotanti come tutti gli altri
esseri viventi.

 String.fromCharCode(67,72,85,67,75);
Mi è arrivato un calcio rotante in pieno viso...


 Yes. Un incubo ^_^;;;
Oh beh, dipende. In effetti non ce la farei a lavorare SEMPRE da casa (l'ho
fatto per sei mesi), ma ogni tanto mi farebbe bene :)
-- 
Nei mondiali di Usa '94 è stata introdotta la regola della "sudden death" in
ottemperanza al concetto di "calcio" di Chuk Norris.

 Mi è arrivato un calcio rotante in pieno viso...
gh ^_^
-- 
Il primo a dividere l'atomo non è stato Einstein. E' stato Chuck Norris: l'ha
frantumato con un solo calcio rotante.

 String.fromCharCode(67,72,85,67,75);
Odio il Javascript, odio il Java, odio il...no, spe', mi pagano...
Amo il Javascript, amo il Java, etc. etc. etc.

 Amo il Javascript, amo il Java, etc. etc. etc.
Bravissimo! :D
-- 
Chuck Norris ti frega sempre con il gioco delle tre scatolette. Solo che lui
ne usa una sola.

 E' per questo che hai questo nick? :)
oscuro? il miiiiiittico Drizzt? L'elfo scuro? era una battuta giocata sul
"scuro" - "oscuro" oppure nel senso che non hai letto nulla su Drizzt?


 oppure nel senso che non hai letto nulla su Drizzt?
Esatto anche questo :D ma lo conosco di "fama". :)
-- 
Chuck Norris è contrario alla prostituzione. Se fosse favorevole, tutte le
donne sarebbero sulla strada.

 fatto per sei mesi), ma ogni tanto mi farebbe bene :)
Dipende da vari fattori, credo.
Io lavoro da casa, ma devo mantenere un'orario d'ufficio perche' il 
quartino, ovviamente, vuole anche i suoi spazi con me.
Quindi niente programmazione la sera dopo cena o la notte...per cui dalle 9 
alle 19 devo farci incastrare lavoro, preparare cena/pranzo, lavare i 
piatti, tenere in ordine ed ogni tanto anche svagarmi :-D
Diciamo che da solo sarebbe piu' facile...certo che poi, se fossi da solo, 
riprenderei il mio ritmo e casa diventerebbe una merda...
Ah, e poi lavorare in casa significa non avere molti contatti con il mondo 
esterno...la pausa caffe' la fai da solo...
E la parte peggiore? Quando hai finito di lavorare sei ancora in ufficio 
:-DDD

 ^_^;
Sono un programmatore atipico.
Amo la programmazione mista dove le classi servono, appunto, a fare le 
classi.
Odio avere i tipi classizzati. I dati sono dati, le istruzioni sono 
istruzioni, e le classi sono roba di comodo. E' lo stesso scoglio che ho 
avuto con il Java, e non riesco ad abituarmici. Tant'e' che non riesco a 
passare a .Net

 passare a .Net
Curiositą: con che linguaggio lavori (meglio) quindi?
-- 
Ro!

 Curiositą: con che linguaggio lavori (meglio) quindi?
C++ e VB6, al momento.
Che sono esattamente quello che ritengo piu' logico dal mio punto di vista: 
avere un linguaggio imperativo a tutto tondo, potente e veloce ma a cui puoi 
aggiungere l'uso delle classi per aiutarti nello sviluppo (che nel caso di 
VB6 sono un po' obbligate, mentre con C++ uso al 99% le api e sostituisco le 
classi con delle banalissime struct)

 :-DDD
Eheh. :)
-- 
Chuck Norris, prima di volere una cosa, la ottiene.

 classi con delle banalissime struct)
In pratica non sviluppi in C++, sviluppi in C. :) Usando due cosucce del C++
giusto perché il compilatore è C++. :) Adesso capisco perché hai detto C++ e
VB6.. Il VB6 non è OOP, e il C++ lo usi come se non lo fosse.
Quindi sei rimasto un programmatore vecchio stampo, adesso capisco. :)
Nota:
Il VB6 è solo "vagamente orientato alla lontana" con la programmazione
"orientata" a oggetti. Lo so perché ci ho lavorato ai tempi.
Non è realmente OOP, perché gli manca "qualche" paradigma.
Nota 2:
Comprendo cmq il "fascino" della vecchia programmazione, ogni tanto mi ci
ributto anche io a scrivere codice a basso livello in C, giusto per fare un
tuffo nel passato. Fa bene, è liberatorio. ;)
-- 
All'inizio dei tempi c'era il nulla. Poi arrivò Chuck Norris, colpì con un
calcio rotante il nulla e gli disse "muovi il culo!". Questa è la storia
dell'universo.

 classi con delle banalissime struct)
Forse è proprio ciò di cui parlavamo qualche giorno fa io e Zer0 discutendo
sul sesso degli angeli (ovvero un fantomatico standard per le RegExp
proposto da Zaphod Beeblebrox ;). Credo che in C++ sia fattibile
programmare senza l'OOP, mentre forse in Java/C# è più complesso... e
sempre forse, da lì le tue difficoltà.
Naturalmente anticipa tutto con un grande IMVVHO e un altrettanto grande
forse.
-- 
Ro!

 tuffo nel passato. Fa bene, è liberatorio. ;)
ARGH! La piaga!! :P
-- 
Ro!

 ARGH! La piaga!! :P
mhm?
-- 
"When you have eliminated the impossible, whatever remains, 
however improbable, must be the truth." 

 mhm?
http://groups.google.it/group/it.comp.lang.javascript/msg/ee0fdb2edca5c748
-- 
Ro!

 due cose. ;)
Eh...infatti...io sto cercando lavoro come corriere, almeno quando torno a 
casa ho un motivo per stare al PC :-D

 sempre forse, da lì le tue difficoltà.
Rispondo qui per rispondere a tutti.
Venendo da un background di contadino, e' probabile che sia un po' troppo 
testardo e pragmatico.
Per me, programmare significa realizzare qualcosa nel modo migliore per 
l'utente. E non nel modo migliore per il programmatore.
La programmazione ad oggetti e' figa, e' cool, fa molto ganzo, ok. Ma viene 
usata di merda.
Un long e' una cella di memoria. Quando sommo due long, il PC deve impiegare 
un ciclo per recuperare un dato, un ciclo per l'altro, ed uno per la somma.
Non deve metterci 50-100 cicli perche' al programmatore fa' piu' figo 
scrivere
lngVar1.Add(lngVar2)
invece che
lngVar1 += lngVar2
Poi entriamo in un ginepraio, finisce che ci scanniamo, ma io resto 
dell'idea che l'innovazione deve essere motivata, non guidata dalla tipica 
stupidita' dei programmatori che corrono sempre dietro a tutto quello che 
c'e' di nuovo.
Cioe', scusata, ma quanti di voi accetterebbero di essere costretti, per 
riuscire a fare i 100 in autostrada, a comprare un'auto 6000 di cilindrata 
che fa 1 con un litro perche' i progettisti hanno adottato un nuovo 
paradigma di progettazione che accorcia i tempi ed e' piu' cool e moderno?
La programmazione ad oggetti e' comodo, funziona bene, e va usata quando 
serve.
Ma creare una classe da cui derivare una classe da cui derivarne un'altra 
per la gestione degli interi con l'overload degli operatori...E' una 
minchiata grossa come un mondo.

 di programmatori incapaci, a quanto sembra ^__^
Di programmatori capaci ce ne son pochi. Per lo più è gente che si ricicla
come tale. Molti non hanno neppure fatto studi di informatica, ma usciti -
chessò - da economia si sono "reinventati" nel campo dell'informatica perché
era l'unica cosa che gli dava il pane.
Talvolta sono persone capaci, e quindi riescono a sviluppare in modo discreto.
Ma gli manca un background informatico, e spesso e volentieri non hanno il
tempo di farsene uno perché devono lavorare.
Di veri programmatori poi, non ne parliamo.
-- 
Quando gli servono una banana flambè, Chuck Norris mangia prima il fuoco.

 per la gestione degli interi con l'overload degli operatori...
Si tratta di usare male uno strumento. Ma il discorso sulle performance è
tutt'altra cosa.
Quelli di cui tu parli sono i soliti vecchi luoghi comuni circa la
programmazione a oggetti; sconfessati dalla pratica in tutti questi anni, e
dalle evoluzioni che sono state fatte.
Poi ti ripeto, che se parliamo di sviluppo web questo discorso perde ancora
più di significato perché ci sono troppi livelli di astrazione e non puoi più
ragionare in termini di ottimizzazioni a basso livello.
Molte delle ottimizzazioni che ero solito fare a basso livello, su web le ho
dovute rimettere un po' tutte in discussione e rianalizzare tramite benchmark
i modi più veloci - laddove la velocità era imperativa - per fare le
operazioni di cui avevo bisogno. Talvolta i risultati andavano contro il "buon
senso comune" (dato appunto dal background di programmazione a basso livello).
In qualche caso, laddove potevo, andavo a studiarmi quello che combinava
effettivamente l'engine in dato caso, per capire perché reagiva in quel modo.
-- 
La tastiera di Chuck Norris non ha il punto di domanda. Chuck Norris non deve
chiedere. Mai.

 tempo di farsene uno perché devono lavorare.
Io, per quello che ho riscontrato, e' che di solito mancano l'educazione e 
l'umilta'.
Esempio: un amico aveva un mini software gestionale, ma di cui non aveva la 
licenza. Ha chiamato un programmatore e gli ha detto "Fammene uno uguale". 
(sorvoliamo sugli aspetti legali)
Il programmatore si e' presentato con un software che fa le stesse cose, ma 
con l'interfaccia e la logica di funzionamento completamente diverse dal 
riferimento.
La maggior parte dei programmatori pensano di essere Dio, e percio':
1) Si inventano le interfaccie piu' assurde possibili ignorando che esiste 
gia' Windows come riferimento.
2) Ignorano le richieste del cliente e producono un software che fa quello 
che loro pensano che il cliente debba volere.
3) Se ne sbattono del fatto che il software deve essere utilizzabile
4) Se ne fregano di informarsi e leggere libri per migliorarsi.
(si, sono un designer di interfacce, si nota?)

 L'una non esclude assolutamente l'altra.
Senti, senza offesa, ma io mi fermo qui su quest'argomento. Discutere di OOP 
davanti ad una tastiera non e' la massima aspirazione della mia vita :-D

 (si, sono un designer di interfacce, si nota?)
Tra le altre cose, anche io, piacere. :)
-- 
Chuck Norris ha risolto il mistero del Triangolo delle Bermuda col Teorema di
Pitagora.

 la massima aspirazione della mia vita :-D
Non credo che stare davanti ad una tastiera a fare qualsiasi cosa, sia la
massima aspirazione della vita di qualcuno. :)
-- 
Dietro ad ogni uomo di successo c'è una donna.
Dietro ad ogni uomo morto c'è Chuck Norris.