2016-08-23 2 views
1

Я использую вызов ajax для обновления содержимого div из нового jsp. есть некоторые теги, которые я вызываю асинхронно через вызов, поэтому они не работают. (теги не работают). как заставить их синхронизироваться во время отображения.Вызов javascript синхронно после создания ajax-запроса для нового содержимого

Моя идея - через document.write (code). Но он не работает. Может ли любой орган предложить решение этого, пожалуйста.

+0

Вы должны показать код или объяснить лучше - вы не «тег вызовов» в JavaScript , вы «вызываете функции» ... так, код сделает ваш смысл более ясным - ps не используйте 'document.write', если вы не пишете код для Netscape 1.0 –

ответ

1

Вы не можете использовать document.write() в обратном вызове Ajax или в любом асинхронном обратном вызове. Его можно использовать только во время начальной загрузки страницы. Если вы вызываете document.write() после загрузки страницы (например, в обратном вызове Ajax), она будет стереть содержимое всей страницы перед записью данных.

Если вы используете jQuery, метод load() - это простой способ получить данные с сервера и вставить в элемент на вашей странице. Пример из the load() documentation:

$("#result").load("ajax/test.html"); 

Это загрузит ajax/test.html страницу с сервера и вставить его содержимое в элемент которого id является result.

load() удобная обертка вокруг the $.ajax() function. Для получения дополнительных параметров, обработки ошибок и т. Д., Вы можете напрямую позвонить $.ajax(), как в приведенном ниже примере. Это должно дать результаты, аналогичные выше, когда это удается, но он пишет сообщение об ошибке, если вызов сервера не удается:

$.ajax({ 
    url: "ajax/test.html" 
}) 
.done(function(html) { 
    $("#result").html(html); 
}) 
.fail(function(jqXHR, textStatus) { 
    $("#result").html("Request failed: " + textStatus); 
}); 
Смежные вопросы