$.ajax, perte de performance sur ie
Bonsoir à tous,
j'ai un petit problème de performance sur ie sur l'appel d'un code php en jquery, après une journée de test et de recherche sur ce bon vieux google,
J'ai décidé de faire appel à vous :)
sur firefox, ca prends +- 2à5 sec (c est a dire le temps du traitement 4000 entree)
sur ie il me fait l'alerte du html au même moment que l'affichage de firefox, puis il se fige pendant au moins 20-30 seconde avant d'afficher la page (dans une div)
voici le code (je l'ai tester sur une page a part, pour voir si ce n etait pas le site en générale qui fessait laggué).
Voici l'appel de la page
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ECHOESYS</title>
<link rel="stylesheet" href="css/style_menu.css" type="text/css">
<link rel="stylesheet" href="css/architecture.css" type="text/css">
<link rel="stylesheet" href="css/style_provisoire.css" type="text/css">
<link rel="stylesheet" href="css/style_provisoire_seb.css" type="text/css">
<link rel="stylesheet" href="css/style_form.css" type="text/css">
<link rel="stylesheet" href="css/style_listing.css" type="text/css">
<link rel="stylesheet" href="css/role/style.css" type="text/css">
<link rel="stylesheet" href="css/style_dashboard.css" type="text/css">
<!--[if IE]>
<link href="css/ie/styleie.css" rel="stylesheet" type="text/css" />
<![endif]-->
<script type="text/javascript" src="js/jquery/jquery.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
</head>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
createView()
})
function createView(){
$('#view_role').html('Loading <img src="./img/loader.gif" width="16" height="16" />');
var parametres = "methode=construct_view";
//AJAX("./requete/roles.php",parametres,createView2);
$.ajax({ // ajax
type: 'POST',
url: "./requete/roles.php",
data: parametres,
dataType: 'html',
cache: false, // pas de mise en cache
success: function(html){
createView2(html);
},
error: function(xhr, ajaxOptions, thrownError){
alert('erreur serveur : '+xhr.status);
}
});
}
function createView2(html){
alert(html)
$('#view_role').empty();
$('#view_role').append(html);
}
</script>
<body>
<div id="view_role"></div>
</body>
</html> |
J'ai tester avec append, html et innerhtml
Les 3 réagissent pareil
celle du php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| <?php
session_start();
//indique que le type de la réponse renvoyée au client sera du Texte
header("Content-Type: text/plain ; charset=utf-8");
//anti Cache pour HTTP/1.1
header("Cache-Control: no-cache , private");
//anti Cache pour HTTP/1.0
header("Pragma: no-cache");
require('../classes/Roles.php');
?>
<?php
$roles = new Roles();
if(isset($_REQUEST["methode"]))
{
if($_REQUEST["methode"] == "construct_view"){
$select_listingByPre2 = $roles->select_listingByPre2();
$tab_rule = $select_listingByPre2["reponse"];
$list_catrule = $roles->list_catrule();
$count_catrule = $list_catrule["count"];
$list_grole = $roles->list_grole();
$count_grole = $list_grole["count"];
$role = '';
$role .= '<div id="_roleGroup">';
for($z = 0 ; $z<$count_grole ; $z++){
$grole_pre = $list_grole["reponse"][$z]["pre"];
$grole_nom = $list_grole["reponse"][$z]["nom"];
$role .= '<input type="checkbox" name="'.$grole_pre.'" id="'.$grole_pre.'" checked="checked"/><span class="'.$grole_pre.'_titre">'.$grole_nom.'</span>';
if($z%2 == 0 && $z>0) $role .= '<br/>';
}
$role .= '</div>';
$role .= '<br/>';
$role .= '<input id="AfficheGroupe" type="button" value="Group enabled"/>';
$role .= '<br/><br/>';
$role .= '<table border="0" cellspacing="0" cellpadding="0" id="table_role">';
$role .= '<tr>';
$role .= '<td class="nom_rule"> </td>';
for($ii = 0 ; $ii<$count_grole ; $ii++){
$grole_pre = $list_grole["reponse"][$ii]["pre"];
$list_role = $roles->list_role($grole_pre);
$count_role = $list_role["count"];
for($iii = 0 ; $iii<$count_role ; $iii++){
$role_pre = $list_role["reponse"][$iii]["pre"];
$role .= '<td class="'.$grole_pre.'_title" valign="bottom">';
$role .= '<img src="./img/role/'.$grole_pre.$role_pre.'.png" width="40" height="200" id="table_roleGroup" />';
$role .= '</td>';
}
}
for($i = 0 ; $i<$count_catrule ; $i++){
$pair =0;
$catrule_nom = $list_catrule["reponse"][$i]["nom"];
$catrule_pre = $list_catrule["reponse"][$i]["pre"];
$role .= '<tr class="cat" id="'.$catrule_pre.'">';
$role .= '<td class="nom_rule role_titre1">'.$catrule_nom.'</td>';
for($ii = 0 ; $ii<$count_grole ; $ii++){
$grole_pre = $list_grole["reponse"][$ii]["pre"];
$list_role = $roles->list_role($grole_pre);
$count_role = $list_role["count"];
for($iii = 0 ; $iii<$count_role ; $iii++){
$role .= '<td class="'.$grole_pre.'"> </td>';
}
}
$role .= '</tr>';
$list_grule = $roles->list_grule($catrule_pre);
$count_grule = $list_grule["count"];
for($j = 0 ; $j<$count_grule ; $j++){
$grule_nom = $list_grule["reponse"][$j]["nom"];
$grule_pre = $list_grule["reponse"][$j]["pre"];
$list_rule = $roles->list_rule($catrule_pre,$grule_pre);
$count_rule = $list_rule["count"];
$role .= '<tr class="group cat_'.$catrule_pre.'">';
$role .= '<td class="nom_rule role_titre2">'.$grule_nom.'</td>';
for($ii = 0 ; $ii<$count_grole ; $ii++){
$grole_pre = $list_grole["reponse"][$ii]["pre"];
$list_role = $roles->list_role($grole_pre);
$count_role = $list_role["count"];
for($iii = 0 ; $iii<$count_role ; $iii++){
$role .= '<td class="'.$grole_pre.'"> </td>';
}
}
$role .= '</tr>';
for($k = 0 ; $k<$count_rule ; $k++){
$rule_nom = $list_rule["reponse"][$k]["nom"];
$rule_pre = $list_rule["reponse"][$k]["pre"];
if($pair%2 == 0){
$role .= '<tr class="pair cat_'.$catrule_pre.'">';
}else{
$role .= '<tr class="impair cat_'.$catrule_pre.'">';
}
$role .= '<td class="nom_rule role_titre3">'.$rule_nom.'</td>';
for($l = 0 ; $l<$count_grole ; $l++){
$grole_pre = $list_grole["reponse"][$l]["pre"];
$list_role = $roles->list_role($grole_pre);
$count_role = $list_role["count"];
for($m = 0 ; $m<$count_role ; $m++){
$role_pre = $list_role["reponse"][$m]["pre"];
$rule = $catrule_pre.'-'.$grule_pre.'-'.$rule_pre.'-'.$grole_pre.'-'.$role_pre;
$listing_nom = $rule;
$listing_val = $tab_rule[$rule];
if($listing_val == 1){
$val = ' checked="checked"';
}else{
$val = '';
}
$role .= '<td align="center" class="'.$grole_pre.'">';
$role .= '<input type="checkbox" name="'.$listing_nom.'" id="'.$listing_nom.'"'.$val.'/>';
$role .= '</td>';
}
}
$role .= '</tr>';
$pair ++;
}
}
}
$role .= '</table>';
echo $role;
}
}
?> |
Quelqu'un serait-il me dire le pourquoi du comment?
Merci d'avance :)