Ekivisi evos overflowed span stnv kato meria tou

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 14 Ιουν 2005 19:46

To problima mou afti tnv fora eivai kapos periergo

exo eva span me overflow auto gia va bgazei mparitses
kai 8elw onload afto va dixvei to periexomevo otav exei ftasei
sto terma to scroll ... to avapodo apo tnv default katastasi dld
pou eivai va dixvei to top meros tou span

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

<html>
<head>
<style type="text/css">
<!--
#chatbox &#123;
    height&#58; 150px;
	width&#58; 300px;
	margin&#58; 0px;
	padding&#58; 0px;
	text-align&#58; left;
	white-space&#58; normal;
	overflow&#58; auto;
	position&#58; relative;
	visibility&#58; visible;
	background-color&#58; #EAEAEA;
	clear&#58; left;
	float&#58; left;
&#125;
-->
</style>
</head>
<body>
<span id='chatbox'><strong>Rapid&#58; </strong>test<br>
test1<br>
<br>
test1<br>
<br>
<br>
test1<br>
<br>
<br>
test1<br>
test1<br>
<br>
<br>
test1<br>
test1<br>
<br>
<br>
test1<br>
test1<br>
<br>
<br>
test1<br>
<br>
test1<br>
tarw</span>
</html>
tricky e?

allo eva komati pou psaxvw eivai va mporw va brw pio eivai to ipsos tou sta8erou merous tou span alla kai tou metablitou logo periexomevou...
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 15 Ιουν 2005 11:12

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

<script type="text/javascript">
  window.onload = function&#40;&#41; &#123;
    document.getElementById&#40;"chatbox"&#41;.scrollTop = 1000
  &#125;
</script>
Δυστυχώς όμως βλέπω να έχει προβλήματα ο IE που έχουν σχέση με τη CSS ιδιότητα width. Μπορείς να κλείσεις το chatbox σε ένα άλλο element και να ορίσεις το width σε εκείνο. Επίσης προτείνω να χρησιμοποιήσεις div αντί για span, και να καταργήσεις το float και το position: relative (εκτός αν υπάρχει λόγος).

Εκτός από την scrollTop υπάρχει και η scrollHeight (read-only).

Υ.Γ. Στον αρχικό κώδικα αντικατέστησα το span με textarea και ο Opera 8.0 εμφάνισε ένα απίστευτο bug! :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 17 Ιουν 2005 17:48

thanks gia ta info :)
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 17 Ιουν 2005 21:31

o ie sto onload troei sobara kolimata :P
xmm tespa 8a tnv broume tnv lisi pou 8a paei !!!

parepiptovtos kaveva tutorial gia parsing apo xml se javascript paizei va broume ?

giati twra to kavw ligo me kavibaliko tropo ... dia tis me8odou tis amesis ava8esis :P
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 18 Ιουν 2005 07:00

Parsing από XML σε JavaScript; Εννοείς client-side με xmlhttpRequest; Αυτά είναι ωραία κόλπα αλλά δυστυχώς δεν παίζουν σε όλους τους browsers. Πάντως αν ξέρεις DOM μπορείς να κάνεις XML parsing όπως κάνεις HTML parsing. Π.χ. με document.getElementById() ή document.getElementsByTagName().

Αν το ζητούμενο είναι η συνεχής επικοινωνία client-server δεν είναι απαραίτητη η XML. Με ένα κρυμμένο IFrame κάνεις τη δουλειά σου περίφημα.

- 2005, The year of data retrieval
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 18 Ιουν 2005 10:18

pws me katalabeveis av8rope mou :P
n alli8ia eivai pos kataskebazo eva javascript based chat system me xriisi tou xmlhttpRequest :)

prospika dev to blepw va miv avtapokrivete kala stous basikous browsers ie netscape mozilla opote eimai kalimevos se afto pou 8elw va kavw
afti tnv stigmi to parsing to kavw me getElementsByTagName() alla movo parsing dev eivai afto afou stnv ousia les bres mou kati me afto kai dosto mou :P apla avarotiomouva av iparxei kapoia pio sosti me8odos gia afti tnv douleia pou va pervaei to tree to xml kai va to parsarei grigora.

twra sovov aftora tnv client-server epikivovia n xml stnv periptosi mou eivai poli aparetiti :P logo twv diaforetikwv metablitwv kai tis periplokis domis twv dedomevov. :)

Koivos epiasa va asxoli8w me ajax iti asyncronus javascript and xml so afto pou exo kavei mexri twra eivai eva plires sistima client-server point to multy point efrmogi (eksou kai to chatbox me to avapodo setup - gia va miazei me msn style [av kai dev me poli ev8ousiase twra pou to ksava eida :P]) live demo
dev eivai kati to poli spoudeo alla rixte mia matia

pavtos afto to xmlhttpRequest eivai o roufianos tou internet :P
mporeis va kaveis trelo sniffing kai intersect se
polla pragmata kai favtazomai oti mias kai twra
sividitopiisame tnv xrisimotita tou sivtoma 8a doume
xmlhttpRequest locking/blocking stous browsers :(

tespa molis exo kati telio skeftomai va to kavw pubish to script :)
thanks for the link !!!
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 20 Ιουν 2005 10:20

Ίσως υπάρχει περίπτωση για XMLHttpRequest blocking αλλά όχι για λόγους ασφαλείας. Είναι ήδη επαρκώς μπλοκαρισμένο εφόσον δεν επιτρέπει requests σε διαφορετικά domain από αυτό της σελίδας. Το πρόβλημα νομίζω είναι ότι η υπερβολική χρήση του μπορεί να καταναλώσει ολόκληρη την (περιορισμένη) bandwidth ενός χρήστη με dial-up. Οπότε θα πρότεινα στην τελική έκδοση της εφαρμογής να έχεις κάποιο κουμπί continue-break ώστε να μπορεί ο χρήστης να σταματήσει τα requests αν χρειαστεί τη bandwidth για κάτι άλλο. Ακόμα καλύτερα αν μπορεί να επιλέξει το interval ανάμεσα στις ανανεώσεις. Διαφορετικά μπορεί να αναγκαστεί να κλείσει το tab με τη σελίδα σου, κάτι που δε θέλεις φυσικά. Μια ιδέα είναι να μην κατεβάζεις συνεχώς όλα τα δεδομένα. Να κάνεις ένα request αν άλλαξε κάτι, και μόνο αν άλλαξε να κατεβαίνουν τα νέα δεδομένα. Μπορείς ακόμα να εμφανίζεις να δεδομένα σε <select> αντί για απλό <div>. Με αυτό τον τρόπο μπορείς να παγιδέψεις το συμβάν onChange του <select> ώστε να γίνεται κάτι όταν ο χρήστης επιλέξει ένα chat-message.

Με XML parsing νομίζω ότι χάνεις τους χρήστες του Opera (αλλά μπορεί να κάνω λάθος). Γι αυτό προτείνω HTML, όπου μπορείς να έχεις τα δεδομένα μέσα σε divs με ξεχωριστό id το καθένα. Αν πάντως δε υπάρχει πρόβλημα, τότε ασφαλώς η XML είναι πιο σωστή λύση. Για parsing μήπως ψάχνεις για ιδιότητες σαν τις παρακάτω;

documentElement, parentNode, childNodes, firstChild, nextSibling

Αν ναι, τότε ψάχνεις για το DOM1 specification (PDF, 538K). :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 20 Ιουν 2005 10:42

afti tnv stigmi opos eivai gramevo to script stelvei movo tis diafores o server kai to interval pou eivai sta 2 sec eivai iperbolika poli

parola afta exo provoisei /start /stop evtoles idi :)

Pavtos apo oti fevete 8a paramivo stnv me8odo pou exo ksekivisei idi to stisimo me ta getElementsByTagName eivai poli boliki apo oti eida kai arketa gigori. osov afora to bandwidth ta dika mou test milave gia max ta 0.2kbps otav exoume kivisi (kai iparxei text sivi8os bgevouve 1-2 grammes ava xristi to defterolepto) ara gia 2 xristes milame va ftasei to poli ta 0.5kbps kai afto se esxates periptoseis. To regular bandwidth pou dimiourgei eivai
0.1kbps gia tnv ekserxomevi xoris va stelvoume data kai 0.2kpbs gia tnv eiserxomevi xoris va lambavei kati extra ektos apo ta standar stuff.

Episis ta data pou setelvei o server erxovte compresed me tnv me8odo tou gzip epomevos av ipostirizei o browser tetoia me8odo tote mikrevei akoma perisotero :)

Twra osov afora to presentation tou chat iparxouve dio me8odoi kai ilopiisa kai tis dio (tnv mia me tnv bon8ia sou :) ) n proti eivai afti pou ta teleftea keimeva pou exouve er8ei eivai pavo pavo
kai n defteri kai (!) diskoloteri afta pou ta teleftea text eivai kato kato pou eivai kai n klasiki me8odos parousiasis sta perisotera IMS sistimata px msn mirc icq kai ola afta.

To epomevo bima se afto to scriptaki eivai ligo va ka8ariso tov kodika giati eivai poli mpaxalo os twra
kai va perasw live users kai sound !!! otav skaei to epomevo mivima va divo tnv divatotita va akougete kapoio ixitiko mivima.

Meta 8a piaso va dixvei tous users pou eivai live
kai tnv divatotita va dimiourgeis chat4rooms me dikasou topics.

Telos apoteros skopos eivai n dimiourgia chanserv nickserv memoserv gia mia pragmatiki prosomiosi tou IRC se http peribalov ...

Ok sigoura dev eivai n kaliteri me8odos gia eva chatroom alla o apoteros skopos mou dev eivai va givei kati 100% leitourgiko ... pio poli gia emeva to kavw kai va dw ti mporw va ma8w apo afti tnv diadikasia

afta :) thanks gia to link 8a to diabaso to apogemataki
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 20 Ιουν 2005 20:33

Προσωπικά το IRC δε με ενδιαφέρει ιδιαίτερα (είμαι ... ασύγχρονος τύπος :)) αλλά η εφαρμογή που φτιάχνεις είναι τέλεια για να μάθει κάποιος JavaScript και DOM!
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 21 Ιουν 2005 13:12

Πριν λίγο διάβασα το παρακάτω άρθρο:

- Very Dynamic Web Interfaces

Το ίδιο το άρθρο δεν είναι τίποτα σπουδαίο, αλλά τα σχόλια είναι όλα τα λεφτά (μόνο που είναι πολλλλλά! :)). Ιδιαίτερα μου άρεσε η πρόταση κάποιου (mdchaney) για αντικατάσταση της XML με JavaScript αντικείμενα. Δηλαδή ο server επιστρέφει κείμενο σαν το παρακάτω:

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

&#123;name&#58; 'Rapid', speciality&#58; 'Eraser'&#125;
... το οποίο μπορεί να μετατραπεί σε JavaScript αντικείμενο πολύ εύκολα στον client:

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

eval&#40;'var user = ' + request.responseText&#41;
Δημιουργήθηκε δηλαδή η μεταβλητή user που περιέχει ένα νέο αντικείμενο. Η πρόσβαση στις ιδιότητες του αντικειμένου αυτού είναι πολύ απλούστερη συγκρινόμενη με XML parsing:

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

alert&#40;user.name&#41;
alert&#40;user.speciality&#41;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 21 Ιουν 2005 13:19

kali idea alla ti givete ama exeis 5-10 control simata
kai kamia 10aria dialogous pou prepei va perasouv me ta avtistixa control simata vomizo I'll stnv omadopiimevi katastasi pou prosferei n xml :)
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 21 Ιουν 2005 17:08

Χωρίς να θέλω να πω ότι είναι καλύτερο ή χειρότερο, απλά για χάρη του παραδείγματος, :) ένα JavaScript object literal μπορεί να γίνει αρκούντως περίπλοκο. Π.χ.:

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

var data = &#123;
  messages&#58; &#91;
    &#123;id&#58;1, text&#58;'Hello!'&#125;,
    &#123;id&#58;2, text&#58;'GoodBye!'&#125;
  &#93;,
  signals&#58; &#91;
    &#123;name&#58;'venus', volume&#58;85&#125;,
    &#123;name&#58;'mars', volume&#58;50&#125;,
    &#123;name&#58;'hermes', volume&#58;105.3&#125;
  &#93;,
  error&#58; &#123;number&#58;3, description&#58;'Server overloaded'&#125;,
  result&#58; true
&#125;
Τώρα έχουμε ένα αντικείμενο data με τέσσερις ιδιότητες: messages, signals, error και result. Η message είναι με τη σειρά της ένα array που περιέχει αντικείμενα, το ίδιο και η signals. Η error περιέχει ένα αντικείμενο, και τέλος η result μία απλή boolean τιμή. Παραδείγματα χρήσης:

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

alert&#40;data.messages.length&#41;    // = 2
alert&#40;data.messages&#91;0&#93;.id&#41;     // = 1
alert&#40;data.messages&#91;1&#93;.text&#41;   // = Goodbye!
alert&#40;data.signals.length&#41;     // = 3
alert&#40;data.signals&#91;2&#93;.volume&#41;  // = 105.3
alert&#40;data.error.number&#41;       // = 3
alert&#40;data.result&#41;             // = true
Εκτός από απλούστερη σύνταξη, ένα επιπλέον bonus είναι το μειωμένο μέγεθος των δεδομένων. Η XML δε φημίζεται για τη λακωνικότητά της, ειδικά αν πρέπει να προστεθούν [CDATA[]] σε κάθε tag! Παρόλα τα πλεονεκτήματα πάντως, ακόμα δεν έχω πειστεί ούτε ο ίδιος ότι είναι σωστή μέθοδος. Η κατασκευή του object literal με PHP μοιάζει αρκετά δύσκολη. :think:

Ενδιαφέρον έχει η ευελιξία της JavaScript στο χωρισμό των γραμμών. Βασικά κόβουμε τις εντολές όπου μας αρέσει! :D
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 21 Ιουν 2005 21:00

Πριν λίγο έμαθα έναν όρο που περιγράφει ακριβώς αυτού του είδους τις εφαρμογές: Ajax!

Ajax = Asynchronous JavaScript and XML :)

Παραδείγματα εφαρμογών Ajax είναι η Google Maps και η Google Suggest.

- Ajax Mistakes
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από Rapid-eraser » 22 Ιουν 2005 21:23

malov dev diabazeis ola osa grafo :P (atima greeklish :))

to CDATA pavtos dev xriazete se ka8e grami apo tnv stigmi pou eva aplo htmlentities() mporei va kavei oli tnv douleia gia eseva :)
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

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

Ekivisi evos overflowed span stnv kato meria tou

Δημοσίευση από skeftomilos » 23 Ιουν 2005 03:32

Άτιμα, άτιμα... :)

Ανεξάρτητα αν μπαίνουν εύκολα ή δύσκολα τα CDATA, το θέμα είναι ότι αυξάνουν το μέγεθος του XML κώδικα (bytes man, bytes!).
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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