2010-11-05 3 views
1

C'est le lien vers un projet que je faisais http://shout.agilityhoster.com/login.htmlpage web lente possible grâce à la fonction javascript appelle

Connectez-vous avec

Nom d'utilisateur: rafa

Mot de passe: nadal

Maintenant, si je me connecte avec un autre utilisateur

Nom d'utilisateur: ana

mot de passe: Ivanovic

alors le site semble fonctionner extrêmement lentement. Plusieurs appels de fonction javascript chronométrés peuvent-ils être la raison? Il fonctionne parfaitement en utilisant xampp sur mon PC ..

Merci

+0

Vous parlez du code onLoad ici? – Gopherkhan

+0

oui, peut-être les sites sont lents à cause de cela.Mais je veux savoir, s'il y a un moyen de le réparer. Il fonctionne parfaitement sur mon PC – Anant

+0

Je me promène pour savoir qui a voté +1 cette question! –

Répondre

0

Vous avez sur cette page comme 3-5 demandes d'ajax par seconde, il peut par lent par moments juste pour cela. Comme l'a souligné Curtis, essayez d'utiliser le panneau Réseau dans Firebug.

+0

oui, merci, je pense que je vais devoir concevoir un script plus efficace – Anant

+0

aussi, sur google chrome, je ne comprends pas pourquoi je reçois un symbole "image incomplète"? – Anant

+0

peut-être vérifier ceci: friend-line.jpg - 404 Introuvable – Beiru

0

Avez-vous essayé de regarder le trafic réseau avec Firebug? Cela vous dirait combien de temps chacune de vos demandes de réseau prend, et quand ils se produisent.

+0

Comment surveille-t-on le trafic réseau à l'aide de firebug? – Anant

+0

Une fois que vous l'avez installé, cliquez sur le petit bug en bas de la fenêtre de Firefox. Passez à l'onglet "Net" dans le panneau qui apparaît, puis actualisez votre page. Toutes les demandes de réseau qui se produisent seront tracées, et vous pouvez voir leurs temps, demandes, réponses, etc – Curtis

0

Comme la réponse de Curtis, vous aurez besoin de profiler la page avec firebug et yslow [https://addons.mozilla.org/en-US/firefox/addon/5369/]. Si vous trouvez que vous êtes en attente d'images et autres, vous pourriez potentiellement échanger sur l'appel onLoad avec méthode prêt de jquery: http://api.jquery.com/ready/

Cela pourrait créer une perception de la performance, même si les autres éléments de page ne sont pas chargement aussi rapidement.

2
  • vous avez plusieurs istances où vous devriez en avoir un seul;
  • vous utilisez le code javascript en ligne où vous pouvez simplement utiliser jquery;
  • vous utilisez body onLoad où vous devez utiliser jquery dom ready;
  • vous utilisez plusieurs POST ajax où vous devriez en avoir un seul et utiliser json;

votre premier compte est probablement plus rapide que la deuxième cause seulement de cache du navigateur, notez que des choses locales sont toujours plus rapide que le serveur en ligne en fonction de sa vitesse et de bande passante.

espoir cette aide

je veux vous aider;)

vous avez ceci:

$("#one").css("visibility","visible"); 
$("#onein").css("visibility","visible"); 
$("#closeaa").css("visibility","visible"); 
$("#onein").css("visibility","visible"); 
$("#Layer22").css("visibility","visible"); 

devrait être:

$(".ClassTheeseAll").css("visibility","visible"); 

ou tout au moins:

$("#Layer22,#onein,#Layer22,#closeaa").css("visibility","visible"); 

vous avez

<body onLoad="javascript:window.setInterval('open()', 1000000);checkrow();javascript:window.setInterval('check_newmsg()', 1000000)"> 

devrait être

$(function() { 
setInterval('initAllMyStuff()', 1000000); 
}); 

function initAllMyStuff() { 
open(); 
checkrow(); 
check_newmsg(); 
} 

function getmsgs() 
{ 
$.post("getmsg.php",{'name':name_one},function(data){$("#one").html(data);}); 
$.post("getmsg.php",{'name':name_two},function(data){$("#two").html(data);}); 
$.post("getmsg.php",{'name':name_three},function(data){$("#three").html(data);}); 
} 

devrait être:

$.post("getmsg.php", { 'name_one' : name_one , 'name_two' : name_two , 'name_three' : name_three } , function(data) { /* loop json and store where needed */ }); 

vous avez alors:

function open(){ 
jQuery(window).bind("beforeunload", function(){$.post("logout.php");}) 
$.post("online.php",function(data){ 
$("#Layer6").html(data); 
}); 

devrait juste être unload:

$(window).unload(function() { 
$.post("logout.php"); 
}); 

à suivre ...

0

Terrible Javascript de côté, que toute demande sur le site, même pour les page de connexion initiale, sont spectaculairement lent (par exemple, la page de connexion à elle seule pris environ 10 secondes pour charger à partir d'ici).

également à un moment donné, j'ai reçu cette erreur sur le site:

Web Server: Too many connections! 

Vérifiez votre code côté serveur pour les problèmes de performance. Assurez-vous que vos requêtes MySQL sont performantes. Assurez-vous que le serveur lui-même est correctement configuré ... Bien sûr, vous n'avez aucun contrôle si vous utilisez un hébergement partagé, et si vous êtes sur un hébergement gratuit, vous devrez simplement vivre avec un site lent.

Questions connexes