При загрузке web-приложения в массив загружается большое количество элементов (около 1000), загрузка длится около 8 секунд, пытался ставить preloader до массива, через "show" после "hide" не работает. Убираю загрузку в массив, все работает. Есть идеи на этот счет?
var itemSource = [];
var k = 0;
var source;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "User",
CAMLViewFields: "<ViewFields><FieldRef Name='FirstName' /></ViewFields>",
CAMLQuery: '',
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function () {
itemSource[k] = $(this).attr('ows_FirstName');
k = k + 1;
itemSource = $.grep(itemSource,function(n){ return n == 0 || n });
var uniqueNames = [];
$.each(itemSource, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
uniqueNames.sort();
$('#Name').autocomplete({
source: uniqueNames,
appendTo: "#results",
open: function() {
var position = $("#results").position(),
left = position.left, top = position.top;
$("#results > ul").css({left: (left + 20) + "px", top: (top + 10) + "px" }); },
select: function (event, ui) {
var test = $("#Name").val(ui.item.label);
$("#Name").val('');
},
change : function () {
$('#Name').val($(this).val());
},
});
});
}
});
что-то я в коде ни прелоадера, ни то, как вы его пытаетесь отобразить, не увидел... но навыки бытовой телепатии подсказывают мне, что это происходит где-то перед вызовом SPServices... в этом случае, меня лично смущает async: false, т.е. вы сами явно замораживаете скрипт до завершения запроса и выполнения всех обработчиков, а потом удивляетесь, почему он в это время заморожен...
Продвижение своими сайтами как стратегия роста и независимости