Я не думаю, что эффективность - это проблема здесь.
Однако есть несколько вещей, которые нужно исправить:
.val()
работает только для ввода формы - для васхочу .text()
. - Полагаю, есть только один div с идентификатором
'load'
.Если их больше, вместо идентификатора следует использовать класс, а если нет, то .each()
не нужен.
Наконец, вот как я бы это сделал:
var count = 0, dots = '...';
setInterval(function () {
var len = Math.abs(count++ % 6 - 3); // Gives only 3, 2, 1, 0, 1, 2, 3, ...
$('#load').text(dots.substring(0, 3 - len));
}, 500);
Смотрите демонстрацию здесь: http://jsfiddle.net/Xp77Q/3/