Я использую следующий код:
$.ajax({
url: "pgiproxy.php",
data: ({ data : $("#formdata").serialize(), mode : "graph"}),
success:
function(result){
var temp = $('<div/>').html(result);
var val = temp.find('center').html();
$('#BFX').html(val);
},
error:
function(){
$("#error").html("ERROR !!!");
}
});
'Результатом' от вызова ajax до 'pgiproxy.php' является целая веб-страница (возвратился как строка), это затем преобразовывается в объект jQuery и хранится в 'var'. Я затем извлекаю данные, в которых я нуждаюсь (изображение .gif) использующий .find (), который хранится в 'val'. Это изображение затем вставляется в отделение #BFX для дисплея.
Моей проблемой является каждый последовательный раз, когда я нажимаю свою кнопку для обновления этого изображения, которое она показывает изображению, загружающемуся сверху донизу, поскольку это читает его в из сети. Есть ли способ только отобразить это изображение, после того как это полностью загрузилось так, пользователь не видит, что изображение загружается и только видит изменение образа немедленно.
использовать .load() load-event на
сначала скрыть изображение, затем показать его, когда загрузка завершится...
быстрая демонстрация см. коды
Вы можете сделать все это вручную: загрузить изображение в фоновом режиме и затем вставить его на страницу. Есть несколько статей, подробно обсуждающих эту тему, включая эту:
http://jqueryfordesigners.com/image-loading/