11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
Je suis débutant en javascript, scriptaculous, prototype et je suis actuellement en train de développer une gestion d'emplois du temps, à la Google agenda.
Mais j'ai quelques petites difficultés ^^
En l'occurrence, au niveau du Drag'nDrop de scriptaculous. J'ai une sorte de lag sur le déplacement, je ne comprends pas trop pourquoi car surtout sur Firefox.
peut être que le nombre de Droppables à l'écran est trop important?

si quelqu'un à des pistes^^ merci
Modifié par lapinou_fou (11 Jun 2009 - 14:18)
Salut lapinou,

a écrit :
Bonjour Docteur -stop- j'ai un peu mal au ventre -stop- j'attends votre diagnostic.
Hmm, hmm... Smiley sweatdrop

Même si tu es un lapinou et que tu es fou, tu dois pouvoir comprendre qu'avec simplement "J'ai une sorte de lag sur le déplacement", toute la bonne volonté du monde ne suffira pas à t'aider...

Donne au minimum ton code, et idéalement ta page en ligne.
Salut
oui j'avoue ne pas avoir été très verbeux sur le coup ^^
Et en plus j'ai posé ma question trop vite Smiley sweatdrop
En gros, j'ai 1200 éléments droppables et vu comment Scriptaculous détecte le drop, ça ne m'étonne pas qu'il y est comme une sorte de lag xD
Je suis entrain de coder un truc pour palier au problème.
Je posterais ma code quand il sera un peu plus "propre"
1200 éléments droppable dans un écran... Smiley biggol tu es sûr que tu devrais pas développer une application desktop en C, plutôt? Smiley lol
Modifié par Florent V. (11 Jun 2009 - 11:50)
le problème c'est que c'est une gestion d'emplois du temps accessible de n'importe où, d'où le choix de développement web. Et puis vu les délais du projet :s
Enfin en tout cas c'est hyper fluide même avec plus de 2000 éléments, et pourtant mon PC n'est pas une foudre de guère.
Après je suis pas sur que mon code soit très orthodoxe mais bon, je suis un bleu en javascript.

document.observe('mouseover',setcurrentovered);

je mets un écouteur sur le document.
qui appelle cette fonction:
function setcurrentovered(evt){
	if(evt.element().hasClassName('quarter')) overed=evt.element();
}


la déclaration de mes draggables:
new Draggable(element,{handle:'lhandler',revert:'true',constraint: 'horizontal' ,
			change:movelinked,onEnd:moveCourse });


et ma fonction de callback sur le drop:
function moveCourse(drag){
	drag=drag.element;
	drop=overed;
	if(drop.cleared){
		var elems=linkedElem(drag.id);
		var f=drop.id.split('_');
		var tmp=f[0]+"_"+f[1]+"_"+f[2]+"_"+f[3]+"_";
		elems.each(function(e){
			var element=$(e);
			var f=$(e).parentNode.id.split('_');
			var d=tmp+f[4];
			element.parentNode.cleared=true;
			element.parentNode.removeChild(element);
			$(d).appendChild(element);
			element.parentNode.cleared=false;
		});
	}
}


voilà si vous avez des critiques ou des questions n'hésitez pas Smiley ravi
L'application: (le charte graphique n'est pas encore faite)
upload/22172-screen.jpg
upload/22172-screen.jpg [/url]
Modifié par lapinou_fou (11 Jun 2009 - 12:09)
Ton problème se produit uniquement sous firefox mais tu l'as constaté sur plusieurs machine ou uniquement sur la tienne ??

Donc dans le cas ou ton problème ne serait survenu que sur ta machine, je te fais part de mes expériences, sinon la solution est ailleurs
Pour ma part j'ai déjà expérimenté à mes dépends des problèmes de lenteur excessive de Firefox avec javascript qui provenait d'anomalies au niveau des disques durs !! Une fois pour un vrai problème disque et l'autre fois ou j'avais un disque ide en master que j'avais débranché et donc seul le "slave" était connecté.