Problème avec le chargement des iframes.

Problème avec le chargement des iframes. - HTML/CSS - Programmation

Marsh Posté le 10-07-2005 à 02:03:22    

J'essai de réécrire un script en javascript pour une sorte de forum avec des messages. Le but est de faire un ''Dropdown'' menu avec des iframes. Jusque là, ça va, mais le problème est que je veux que les iframes ne se télécharge pas à l'avance, pour sauver de la bande passante. Avec Netscape, pas de problème, les iframes ne se télécharge pas à l'avance lorsqu'elles sont cachées. Cependant, avec Mozilla 'Firefox' et Internet Explorer elle se télécharge à l'ouverture de la page principale.
 
J'ai essayé de mettre src='about:blank' dans les ifames, mais ça cause 2 problèmes:
1)Mon script ne fonctionne qu'une fois avec Netscape.
2)Ça semble pas vouloir s'afficher si on insert la page principale dans une ifame. (Oui, je sais, j'adore les iframes)
 
Solution envisagés:
J'ai essayé de mettre un temps d'attente (avec SetTimeOut) avant le rechargement des iframes, marche pas vraiment.
J'ai essayé de mettre le lien des pages directement dans les src des iframes, IE preload les iframes, pas le but recherché.
 
J'en est conclu que je ne pouvais pas mettre src='about:blank' dans les iframes à cause de Netscape et que si je mets  src='lapage.htm', Mozilla et Internet Explorer vont précharger les pages d'avance.
 
Voilà où j'en suis rendu avec mon script, une aide serait fortement apprécier.
---------------------------------------------------------------------------------------------------------------------------------------------<html>
<head>
<script type="text/javascript">
<!--
var enablepersist="off"  
var collapseprevious="no"
if (document.getElementById){
document.write('<style type="text/css">.switchcontent{display:none;}</style>')
}
function getElementbyClass(classname){
ccollect=new Array()
var inc=0
var alltags=document.all? document.all : document.getElementsByTagName("*" )
for (i=0; i<alltags.length; i++){
if (alltags[i].className==classname)
ccollect[inc++]=alltags[i]
}
}
function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}
function expandcontent(cid){
if (typeof ccollect!="undefined" ){
if (collapseprevious=="yes" )
contractcontent(cid)
document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block" )? "block" : "none"
}
}
function revivecontent(){
contractcontent("omitnothing" )
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|" )
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}
function get_cookie(Name) {  
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {  
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function getselectedItem(){
if (get_cookie(window.location.pathname) != "" ){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}
function saveswitchstate(){
var inc=0, selectedItem=""
while (ccollect[inc]){
if (ccollect[inc].style.display=="block" )
selectedItem+=ccollect[inc].id+"|"
inc++
}
document.cookie=window.location.pathname+"="+selectedItem
}
function do_onload(){
uniqueidn=window.location.pathname+"firsttimeload"
getElementbyClass("switchcontent" )
if (enablepersist=="on" && typeof ccollect!="undefined" ){
document.cookie=(get_cookie(uniqueidn)=="" )? uniqueidn+"=1" : uniqueidn+"=0"  
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0
if (!firsttimeload)
revivecontent()
}
}
if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload
if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate
//-->
</script>
<script type="text/javascript">
<!--
function reloadifr(ifr,redi){
top.frames[ifr].location.href = redi
}
//-->
</script>
</head>
<body>
<font onClick="expandcontent('sc1');reloadifr('sc1','message_int1.htm')" class="gmessa">Nom du post 1</font><br>
<div id="sc1" class="switchcontent">
<iframe name="sc1" width=99% height=205 src="about:blank" style="border:2px #990000 solid;" frameborder="no"  marginwidth=10 marginheight=10></iframe>
</div><br>
 
<font onClick="expandcontent('sc2');reloadifr('sc2','message_int2.htm')" class="gmessa">Nom du post 2</font><br>
<div id="sc2" class="switchcontent">
<iframe name="sc2" width=99% height=205 src="about:blank" style="border:2px #990000 solid;" frameborder="no"  marginwidth=10 marginheight=10></iframe>
</div><br>
 
<font onClick="expandcontent('sc3');reloadifr('sc3','message_int3.htm')" class="gmessa">Nom du post 3</font><br>
<div id="sc3" class="switchcontent">
<iframe name="sc3" width=99% height=205 src="about:blank" style="border:2px #990000 solid;" frameborder="no"  marginwidth=10 marginheight=10></iframe>
</div><br>
 
<font onClick="expandcontent('sc4');reloadifr('sc4','message_int4.htm')" class="gmessa">Nom du post 4</font><br>
<div id="sc4" class="switchcontent">
<iframe name="sc4" width=99% height=205 src="about:blank" style="border:2px #990000 solid;" frameborder="no"  marginwidth=10 marginheight=10></iframe>
</div><br>
</body>
</html>
-------------------------------------------------------------------------------------------------------------------------------------------

Reply

Marsh Posté le 10-07-2005 à 02:03:22   

Reply

Marsh Posté le 10-07-2005 à 09:00:01    

un menu ak des iframes, jamais entendu pareil  connerie

Reply

Marsh Posté le 10-07-2005 à 11:18:51    

et puis tu pourrais mettre ton code entre [code ] et [ /code]
 
Edit : et coder comme on fait de nos jours, c'est à dire, vu que tu as des css, foutre les attribtus de présentation dans la css. Les font ne doivent plus être utilisées depuis que les css existent ...


Message édité par plainsofpain le 10-07-2005 à 11:19:42

---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 10-07-2005 à 17:43:55    

Pour gatsusat: Ça sauve de la bande passante, c'est très esthétique et pratiques.
 
Pour plainsofpain: Ça ne règle pas mon problème, j'obtimiserai plus tard, si mon code fonctionne.
 
On dirait que personne ne trouve! Ça doit pas être si compliquer.

Reply

Marsh Posté le 10-07-2005 à 18:26:13    

putain sauver de la bande passante? ??? mais t'es ravagé ?
pour le peu ke tu sauve, encore il faudrait mieux que tu le fasse en AJAX (XmlHttprequest) ca serait encore plus propre.
 
Parce que là franchement, j'ai jamais vu une idée aussi débile.
Mais bon, ca veut aussi dire que ton menu fait 10 km de long si tu veux passer par une solution aussi bancale

Reply

Marsh Posté le 10-07-2005 à 18:42:09    

darkkrab a écrit :

Ça sauve de la bande passante


Montre donc le code des pages HTML qu'on se marre [:cupra]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-07-2005 à 19:06:49    

Avec un site de plus de 200 000 users on a intérêts à optimiser, même  si on sauve peu par personne. Pouvez-vous répondre à la question ou seulement insulter les gens?

Reply

Marsh Posté le 10-07-2005 à 19:17:08    

bah si tu comptes mettre 200 000 User sur ton site laisse moi t'apprendre 2 choses :  
 
1- les iframes ca existe pas, c'est pas fait pour faire des sites Internet, au pire tu utilise ca dans un intranet, mais bon ca fera plus de caca qu'autre chose.
2- faire un menu c'est bien, le faire en Javascript totalement c'est moins bien, ca rend ton site moins accessible, et vu le nombre de personnes ke tu vises c'est foutu d'avance
3- utiliser des iframes dans un menu j'appelle cela de l'héresie et de la pure folie.
4- Si tu veux qu'on taide on voudrait bien un bout de ton code HTML ca nous permettra de voir les interaction entre le JS et le HTML
5- un lien vers ton exemple ca serait un mega plus je pense.
6- C'est pas en utilisant des grigri bancales qu'on optimise un site avec 200 000 users

Reply

Marsh Posté le 10-07-2005 à 19:23:56    

J'utilise les iframes pour le forum seulement et c'est seulement une option plus agréable lors de la navigation.
 
Je tente seulement de faire fonctionner mon script ci-haut totalement avant de l'optimiser, rien d'autre. Vous n'avez pas besoin d'un bout de mon code html pour ce faire. Faîtes copier-coller le script et essayer de comprendre.

Reply

Marsh Posté le 10-07-2005 à 19:26:33    

erf javais po vu ke tu avais colled tout le menu

Reply

Marsh Posté le 10-07-2005 à 19:26:33   

Reply

Marsh Posté le 10-07-2005 à 20:15:30    

déjà un code comme ca c'est plus mieux on va dire :  
 
J'ai commenté un strict minimum
le but du jeu ici est de ne pas initialiser le SRC de liframe, mais initialiser ce SRC lorsque on affiche cet iframe. C'est plus intelligent.
tu verra aussi que je fais du JS non intrusif, et ce code est beaucoup plus propre que la bouse que tu m'a pondu.
au passage tu mettra tous dans les CSS
genre la class switchcontent doit contenir tout ce qui concerne la mise en forme de l'iframe
 
PS : s'il te plait prend exemple là dessus et fait un code propre merci. JE ne donne pas cher du code final
si tu veux optimiser la bande passante, commence déjà par optimiser le code HTML
 
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <style>
  5. IFRAME{
  6. width:200px;
  7. height:200px;
  8. }
  9. </style>
  10. <script type="text/javascript">
  11. //On ajoute les fonctions d'affichage de chaque lien qui contient la classe Gmessa
  12. // Chaque lien porte le ID de l'iframe à afficher dans son HREF
  13. function checkLinks() {
  14.     if(!document.getElementsByTagName)
  15.         return;
  16.     var Menulinks = document.getElementsByTagName('A');
  17.     for(var i=Menulinks.length-1; i>=0; --i)
  18.         if(Menulinks[i].className.indexOf('gmessa') != -1) {
  19.             Menulinks[i].href = "javascript:SwitchIframe(\'" + Menulinks[i].title + "\')";
  20.    Menulinks[i].title = "";
  21.                 }
  22. }
  23. // On cache chaque iframe de la page qui contient la class switchcontent
  24. function hideAlliframe() {
  25.     if(!document.getElementsByTagName)
  26.         return;
  27.     var MenuIframes = document.getElementsByTagName('IFRAME');
  28.     for(var i=MenuIframes.length-1; i>=0; --i)
  29.         if(MenuIframes[i].className.indexOf('switchcontent') != -1) {
  30.       MenuIframes[i].style.display = "none";
  31.                 }
  32. }
  33. //On initiliase tout ce joli monde avec une fonction qui appelle les autres
  34. function initAll(){
  35. hideAlliframe();
  36. checkLinks();
  37. }
  38. window.onload = initAll;
  39. function SwitchIframe(numeroframe){
  40. var moniframe = document.getElementById('sc' + numeroframe);
  41. if (moniframe.style.display=='block') {
  42.  moniframe.style.display = 'none'; //ON cache l'iframe
  43. }
  44. else{
  45.  moniframe.style.display = 'block'; //On affiche l'iframe
  46.  moniframe.src = 'mapagehtml' + numeroframe + '.html'; //On rajoute le lien de l'iframe
  47. }
  48. }
  49. </script>
  50. </head>
  51. <body>
  52. <a href="#" title="1" class="gmessa">Nom du post 1</a><br>
  53. <iframe id="sc1" class="switchcontent"></iframe>
  54. <a href="#" title="2" class="gmessa">Nom du post 2</a><br>
  55. <iframe id="sc2" class="switchcontent"></iframe>
  56. <a href="#" title="3" class="gmessa">Nom du post 3</a><br>
  57. <iframe id="sc3" class="switchcontent" ></iframe>
  58. <a href="#" title="4" class="gmessa">Nom du post 4</a><br>
  59. <iframe id="sc4" class="switchcontent"></iframe>
  60. <br>
  61. </body>
  62. </html>


Message édité par gatsusat le 10-07-2005 à 20:26:29
Reply

Marsh Posté le 10-07-2005 à 20:30:46    

C'est plus court, mais au téléchargement de la page, toutes les iframes s'ouvrent (pas très esthétique) et ça ne règle pas mon problème. Je voudrais que les ifames ne se téléchargent pas d'avance.
 
Merci quant même.

Reply

Marsh Posté le 10-07-2005 à 20:45:51    

mon dieu
 
les iframes ne se telechargent puisque il n'y a pas de SRC=""
et donc ces iframe ne sont pas chargées. Tu comprend ou je dois te faire un Dessin ?
dans mon code je ne charge la page attachée à l'iframe que lorsque celle-ci s'affiche.
 
et j'ai ajouté un code JS ki cache toutes les iframes automatiquement dès l'ouverture de la page  
 
fais un copier coller  de ce code dans ton navigateur
 au passage il faut que ton javascript soit activé.
 
IE block le javascript lors de la premiere ouverture de la page.
 
teste aussi avec firefox tu verras.
 
d'après toi si j'ai fais ca c'est pour me branler ?  
 
function hideAlliframe() {  
    if(!document.getElementsByTagName)  
        return;  
    var MenuIframes = document.getElementsByTagName('IFRAME');  
    for(var i=MenuIframes.length-1; i>=0; --i)  
        if(MenuIframes[i].className.indexOf('switchcontent') != -1) {  
             MenuIframes[i].style.display = "none";  
                }  
}
 
 
dis moi, une fois ke la page est chargée, les iframes sont cachées ou non ?


Message édité par gatsusat le 10-07-2005 à 20:47:03
Reply

Marsh Posté le 10-07-2005 à 20:48:43    

Quand je lis ce genre de message je me dis que franchement un acces a la profession serait benefique ... Mon dieu le boulet...

Reply

Marsh Posté le 10-07-2005 à 20:52:06    

darkkrab a écrit :

Avec un site de plus de 200 000 users on a intérêts à optimiser, même  si on sauve peu par personne.


Et c'est sûrement pas avec des iframes qu'on optimise, surtout quand on a une mise en page composée uniquement de tables (ce qui est probablement ton cas).
 
Tu veux des sites avec beaucoup d'utilisateurs? va voir du côté de Sourceforge, Fark ou Slashdot, ça ce sont des sites avec des utilisateurs...
 
Et ils n'ont, étrangement, pas de frames


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-07-2005 à 20:52:50    

les message de qui ?? de moi ?
 
tiens pour toi darkkrab j'ai fait encore plus cours avec iframe cachées dès le début (et vi tu verifieras la class switchcontent) comme un boulet je faisait appel à une fonction alors que j'avais juste à rajouter un teste dans ma fonction showhideiframe
 

Code :
  1. <table>
  2. <tr>
  3. <td><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <style>
  7. .switchcontent{
  8. width:200px;
  9. height:200px;
  10. display:none;
  11. }
  12. </style>
  13. <script type="text/javascript">
  14. //On ajoute les fonctions d'affichage de chaque lien qui contient la classe Gmessa
  15. // Chaque lien porte le ID de l'iframe à afficher dans son HREF
  16. function checkLinks() {
  17.     if(!document.getElementsByTagName)
  18.         return;
  19.     var Menulinks = document.getElementsByTagName('A');
  20.     for(var i=Menulinks.length-1; i>=0; --i)
  21.         if(Menulinks[i].className.indexOf('gmessa') != -1) {
  22.             Menulinks[i].href = "javascript:SwitchIframe(\'" + Menulinks[i].title + "\')";
  23.    Menulinks[i].title = "";
  24.                 }
  25. }
  26. window.onload = checkLinks;
  27. function SwitchIframe(numeroframe){
  28. var moniframe = document.getElementById('sc' + numeroframe);
  29. if (moniframe.style.display=='block' || moniframe.style.display == null) {
  30.  moniframe.style.display = 'none'; //ON cache l'iframe
  31. }
  32. else{
  33.  moniframe.style.display = 'block'; //On affiche l'iframe
  34.  moniframe.src = 'mapagehtml' + numeroframe + '.html'; //On rajoute le lien de l'iframe
  35. }
  36. }
  37. </script>
  38. </head>
  39. <body>
  40. <a href="#" title="1" class="gmessa">Nom du post 1</a><br>
  41. <iframe id="sc1" class="switchcontent"></iframe>
  42. <a href="#" title="2" class="gmessa">Nom du post 2</a><br>
  43. <iframe id="sc2" class="switchcontent"></iframe>
  44. <a href="#" title="3" class="gmessa">Nom du post 3</a><br>
  45. <iframe id="sc3" class="switchcontent" ></iframe>
  46. <a href="#" title="4" class="gmessa">Nom du post 4</a><br>
  47. <iframe id="sc4" class="switchcontent"></iframe>
  48. </body>
  49. </html>


Message édité par gatsusat le 10-07-2005 à 20:53:14
Reply

Marsh Posté le 10-07-2005 à 20:55:07    

on pourrai meme encore faire plus bourrin en rajoutant des nodes au dom mais bon po le courage ce soir

Reply

Marsh Posté le 10-07-2005 à 20:57:16    

gatsusat a écrit :

on pourrai meme encore faire plus bourrin en rajoutant des nodes au dom mais bon po le courage ce soir


 
non pas de toi .. Meme si moi j'aurais pas pris la peine de perdre du temps a utiliser des iframes comme tu l'as fait .. non je parle du gugus qui se prend pour dieu et qui viens ici poser des questions stupides sur un code immonde


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-07-2005 à 20:59:50    

ben en fait j'ai surtout fait ca pour bien comprendre le JS non obstrusif. Bon pour le moment ca se limite à la modification des tags existant, la prochaine fois je m'attaque aux nodes du dom
 
m'enfin bon je lui ai dit 50 fois que c'était stupide d'utiliser des iframes, mais il veut rien savoir
et vu la manière dont il code, il peut arrêter de coder tout de suite.
 
M'enfin je lui ai divisé par 2 voire le nombre de lignes, et je suis sur qu'on peut encore mieux faire  
:D :D  :D  :D  
 
Mais voila monsieur n'est pas content, et c'est pas lui qui va aller se casser le cul apparament


Message édité par gatsusat le 10-07-2005 à 21:01:12
Reply

Marsh Posté le 10-07-2005 à 21:04:06    

Justement, ce genre de boulet faut pas le renseigner, comme ca a l'usure il va p-e comprendre qu'il fonce dans un mur


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-07-2005 à 21:06:42    

ben jvois les choses différement, si a la rigueur on lui montre quelque chose de tout beau peut etre qu'il comprendra
 
mais je crois ke je my prend mal, jvais faire comme toi esox_ch
mais bon j'ai fais ca aussi sur un autre topic, le boulet je lui ai fait toute son integration graphique en CSS. et ce con il utilisait dreamweaver en Wysiwyg mon dieuuuuuuuuuuuuu
bon oki javais fait une tite gaffe dans mon code
mais ce con avec zapé un truc dans le code, un debut de div ak id erf. il merite des coups de boules et vu comment il a sacagé mon menu, c'est encore pire
yavait un strong par ligne dans les LI meme po foutu de foutre du gras via la CSS

Reply

Marsh Posté le 10-07-2005 à 21:10:37    

Parcontre, un conseil, essaie d'ecrire plus en français ... Meme moi qui fais 5 fautes par mot j'ai de la peine a te comprendre ... alors je m'imagine mal les autres :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-07-2005 à 21:12:21    

Ton nouveau code fonctionne, mais pas l'ancien, pour te prouver le problème:
 
Met une page appeler mapagehtml1.html à coté des la page contenant le script. Dans cette page met une image. Vide le dossier 'C:\Documents and Settings\Propriétaire\Local Settings\Temporary Internet Files' et ouvre la page avec le script. Tu va voir que ton ancien script téléchargeait toutes les iframes d'avance et que les iframes s’ouvraient.
 
Merci.

Reply

Marsh Posté le 10-07-2005 à 21:12:24    

Ouais là j'ai même pas pris la peine de faire gaffe à l'orthographe et à la grammaire, on va dire que j'étais pressé, promis esox_ch.
 
et dire que je suis le premier à gueuler sur la grammaire et l'orthographe

Reply

Marsh Posté le 10-07-2005 à 21:16:44    

Les iframes sont pour ceux qui veulent les utiliser parmis les users, où est le problème? À moins que vous ayez une idée plus compacte pour faire suivre des post sans tous les préloader d'avance et sans changer de page (visuellement).

Reply

Marsh Posté le 10-07-2005 à 21:20:11    

XMLHttpRequest
 
http://www.openweb.eu.org/articles [...] tprequest/
 
tu as du apprendre à faire des sites web dans une pochette surprise


Message édité par gatsusat le 10-07-2005 à 21:21:35
Reply

Marsh Posté le 10-07-2005 à 21:23:11    

darkkrab a écrit :

Les iframes sont pour ceux qui veulent les utiliser parmis les users, où est le problème? À moins que vous ayez une idée plus compacte pour faire suivre des post sans tous les préloader d'avance et sans changer de page (visuellement).


xmlHttpRequest si l'utilisateur l'active [:spamafote]
 
Parce que là il se passe quoi si, par exemple, mon navigateur ne gère pas les frames/iframes? [:petrus75]


Message édité par masklinn le 10-07-2005 à 21:23:48

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-07-2005 à 21:28:32    

Pour gatsusat: Désolé de pas avoir pensé au XMLHttpRequest.
 
Pour Masklinn: La navigation traditionelle.

Reply

Marsh Posté le 10-07-2005 à 21:31:49    

et tu fais comment pour passer à la navigation traditionnelle si le mec n'a pas le JS d'activé ?
 
le mieux serait que tu recode toute ce qui est JS sur ton forum de la manière dont je l'ai fait.
 
D'abord tu tassure que ton forum fonctionne parfaitement sans javascript
 
ensuite tu lui colle une couche javascript comme je te l'ai montré

Reply

Marsh Posté le 10-07-2005 à 21:37:31    

C'est une des choses que j'ai envisagé de faire. Mon premier post commence par 'J'essai de réécrire'. J'essai de rendre mon forum interactif pour ceux qui le supporte et pour les autres, la navigation traditionnelle. C'est simple et efficace.

Reply

Marsh Posté le 10-07-2005 à 21:40:03    

ben tu as la solution toute faite entre les mains car le code que tu avais avant, je sais pas qui l'avait ecrit mais il était mega bancal

Reply

Marsh Posté le 10-07-2005 à 21:42:15    

J'avais remarquer. Mais je fait tout le temps des petites retouche avec le temps.

Reply

Marsh Posté le 10-07-2005 à 21:46:36    

ben on va dire que j'ai jamais vu un code aussi crade lol

Reply

Marsh Posté le 10-07-2005 à 21:48:37    

Je suis sûr que t'as vu pire, sérieusement.

Reply

Marsh Posté le 10-07-2005 à 22:00:20    

ouais ya 7 ans sur mon tout premier site

Reply

Marsh Posté le 10-07-2005 à 22:02:43    

lol, mon deuxième site avait déjà une frame.

Reply

Marsh Posté le 10-07-2005 à 22:05:29    

darkkrab a écrit :

Je suis sûr que t'as vu pire, sérieusement.


Laisse, il a les hormones qui se déclenchent, il est en pleine puberté alors il s'excite tout seul.
 
Histoire d'être un peu constructif:
Pour un chargement progressif il y a en fait deux possibilités pas trop trop crade et non obtrusive.
 
Legacy => tu charges ta page, et via javascript et si la chose est possible tu crées une iframes cachée. Pas deux, une seule. Cette iFrame sera utilisée pour effectuer des échanges entre la page locale et le serveur: tu changes sa "location.href" (par ce dont tu as besoin), ça va chercher une page donnée, puis un onload dans la page chargée va utiliser ces données pour modifier la page contenant l'iframe via manipulations du DOM.
 
Moderne => beaucoup plus propre mais un peu moins supporté, tu utilises xmlHttpRequest pour effectuer tes requêtes de données. Ca te permet de faire transiter des requêtes plus complexes et de garder un DOM propre (puisque tu n'as pas besoin de créer une iframe de communication). De même, l'utilisateur charge initialement une page normale et un script onload va la modifier afin de permettre l'utilisation d'xmlHttpRequest
 
Google Style.
Google, dans ses produits Gmail et Google Suggests, utilise ce genre de choses. Leur approche visant la compatibilité, ils l'effectuent ainsi:
1- Une page fonctionnelle
2- Un script au chargement qui teste la possibilité d'utiliser xmlHttpRequest et lance la procédure pour le mettre en place si dispo
3- Si l'étape précédente a raté, un script équivalent tente de mettre en place une iframe cachée
4- Si l'étape 3 rate, l'utilisateur garde sa page classique fonctionnelle.
 
Par contre il y a une chose à laquelle il faut faire TRES attention quand on utilise ce genre de choses: les liens&urls.
 
Tu te dois, quand tu mets en place ces trucs, de fournir à l'utilisateur des permalinks et une documentation afin qu'il puisse toujours bookmarker un post ou un thread précis... alors qu'il ne change en fait jamais de page. C'est probablement le plus gros problème avec le fait que les boutons PRECEDENT et SUIVANT deviennent inutilisable.
 
En fait, le gros inconvénient de cette méthode est qu'un certain nombre de fonctionalités basiques et standard du navigateur sont littéralement détruites (c'est pareil quand tu utilises des iframes comme tu le fais btw).
 
Après, c'est une question de balance entre ce que ça apporte à toi et surtout à tes utilisateurs et ce que ça vous coûte (à toi et - là encore - à tes utilisateurs).


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-07-2005 à 22:13:49    

Je sais que je dois désactiver la navigation précédant et suivant, de toute façon, un site bien conçu, n'en a pas besoins. En passant, avant qu'on me fasse des reproches, je sais que certaines personnes aiment bien ces fonctions (précédant et suivant).

Reply

Marsh Posté le 10-07-2005 à 22:16:26    

darkkrab a écrit :

un site bien conçu, n'en a pas besoins.


 [:f@bek] WTF [:mlc]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 11-07-2005 à 09:24:20    

darkkrab a écrit :

Je sais que je dois désactiver la navigation précédant et suivant, de toute façon, un site bien conçu, n'en a pas besoins.


MAMANNNNNNNNN [:alph-one]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed