Je développe une application avec phonegap. sur mon PC tout fonctionne bien mais sur mon appareil mobile c'est juste trop lent.comment rendre le code suivant plus vite?
Je pense que le problème est sur la fonction show, le navigateur Android semble vraiment besoin de long pour afficher et masquer les éléments
ce qui peut être amélioré?
function show(id){
$('.view').hide()
//alert('show ' + id)
$('#'+id+'View').show()
scroll(0,0)
}
function getSoundHTML(id, myname, del){
if (del != true){
var imgsrc = 'plus.png'
var f = function(){
addToCostumSounds(id)
alert('added to favorites')
}
}else{
var imgsrc = 'minus.png'
var f = function(){
removeFromCostumSounds(id);
$(this).fadeOut().next('div').fadeOut();
}
}
var div = $('<div></div>').addClass('box').html(myname).css('border-color', '999999').click(function(){
play(id)
})
var img = $('<img></img>').attr('src', imgsrc).addClass('sideimg').click(f)
return $('<div></div>').append(img).append(div)
}
for(var category in categories){
var f = function(category){
$('#'+category+'Btn').click(function(){
show(category)
var categoryView = $('#'+category+'View')
for(var key in categories[category]){
var div = getSoundHTML(key, categories[category][key])
categoryView.prepend(div)
}
var img = '<img src="menu.png" class="menuimg"/>'
categoryView.prepend(img)
categoryView.append(img)
})
}
f(category)
}
le code html:
<div class="btn" id="noBtn">no _</div>
<div class="btn" id="thatIsBtn">that is _</div>
<div class="btn" id="thereIsBtn">there is _</div>
<div class="btn" id="thisIsBtn">this is _</div>
...
<div class="view" id="noView"></div>
<div class="view" id="thatIsView"></div>
<div class="view" id="thereIsView"></div>
<div class="view" id="thisIsView"></div>
...
Utiliser le JavaScript natif? –
Vous pouvez essayer d'exécuter votre code à l'aide de JSLint (http://www.jslint.com/) pour le résoudre en premier. – isNaN1247
Après avoir lu ceci une seconde fois: y a-t-il une raison pour que vous définissiez et utilisiez la fonction 'f' au même endroit? Cela semble redondant. –