Estoy trabajando en una búsqueda ajax en vivo como Google. Pero tengo problemas para entender el comportamiento asíncrono.
Tengo dos scripts js: Script1.js llama a un script php y la respuesta es html, que incluye otro script2.js. Script2 es un complemento de jquery. Pero cada vez que llamo a mi jquery-plugin en mi respuesta php
$('body').my_plugin();Me sale un error en la consola, que este complemento no existe.
Aquí está mi ejemplo:
script1.js hace una llamada AJAX asíncrona así:
$.ajax({ type: 'GET', url: 'my_url/search.php', }).done(function(response) { $('#response-div').empty().append(response); ... }).fail(function() { ... });La respuesta php html se ve así:
... <script type="text/javascript" src="js/script2.js"></script> <script type="text/javascript"> $(document).ready(function() { $('preview-div').my_plugin(); }); ....Cuando hago una llamada AJAX sincrónica, funciona. Cuando uso la función getScript jQuery en mi respuesta php, también funciona:
<script type="text/javascript"> $(document).ready(function() { $.getScript('js/sript2.js', function(jd) { $('preview-div').my_plugin(); }) });¿Alguien puede explicarme la diferencia por favor? ¿Cuál es la mejor práctica para cargar contenido asincrónico que incluye sus propios js-scripts?