$.ajax({ url: "plugin.js", dataType: 'script', cache: true, success: function() {
    alert('loaded');
}});

1) yo no puedo conseguir el script de carga, probablemente debido a la ruta de acceso incorrecta, pero ¿cómo puedo determinar la ruta correcta? El código anterior es en init.js, plugin.js también está en la misma carpeta.

2) puedo cargar varios plugins a la vez con la misma solicitud? por ejemplo. plugin.js, anotherplugin.js?

root
|
|_ html > page.html
|
|_ static > js > init.js, plugin.js

Gracias por su ayuda

InformationsquelleAutor 3zzy | 2010-05-21

6 Comentarios

  1. 5

    Necesita utilizar getScript, no ajax. Ajax para la carga de datos, no para la ejecución de código.

    Si usted necesita para cargar varios archivos, intente algo como esto:

    var scripts = ['plugin.js', 'test.js'];
    for(var i = 0; i < scripts.length; i++) {
      $.getScript(scripts[i], function() {
        alert('script loaded');
      });
    }
    • A partir de la documentación: getScript es la abreviatura de $.ajax({ url: url, dataType: 'script', success: success });, así que no hay nada malo con el uso de .ajax, es sólo un poco más detallado.
    • Estoy usando .ajax específicamente para asincrónica de almacenamiento en caché (caché: true).
    • Sólo para tu INFORMACIÓN getScript no cache que es importante…
  2. 3

    1) La ruta de acceso será relativo a la página se carga desde el (no el camino de su script de inicio) ya que es la dirección url del navegador será en cuando se ejecuta la petición ajax.

    Editar: Basado en la edición, la ruta para cargar la secuencia de comandos es /static/js/plugin.js (si es que va a ser desplegado en la raíz de tu dominio), o ../static/js/plugin.js para estar seguro (suponiendo que todas las páginas que va a ser cargado desde estarán en /html).

    2) No. Si están en diferentes archivos, deben ser diferentes de las solicitudes. Usted puede combinarlos en un archivo en el servidor, aunque…

    • Gracias, ya he editado el desc para mostrar la estructura, puede ayudar a encontrar el camino? Gracias!
    • Trató de ambos /static/js/plugin.js y /static/js/plugin.js pero aún así no se carga. Cualquier otra forma de cruz de comprobación?
    • Primero trate de cargar el archivo directamente en el navegador, se debe trabajar en http://<domain>/static/js/plugin.js. Suponiendo que el archivo es donde se esperar & que funciona, pruebe a instalar de firefox y ver la Red del panel cuando la petición ajax se despidió para ver la URL solicitada, y a ver lo que la respuesta es…
    • Gracias! Yo no la la ruta es relativa a la página, soy nuevo en jQuery y este fue el consumo de una gran cantidad de tiempo
  3. 1

    Como una actualización, la mejor manera de hacer esto con jQuery 1.9.x es el uso de Deferreds-métodos (es decir,$.cuando), tal como sigue:

    $.when(
      $.getScript('url/lib.js'),
      $.getScript('url/lib2.js')
    ).done(function() {
      console.log('done');
    })

    La .done() función de devolución de llamada tiene un número de útiles params.

    Leer la documentación: http://api.jquery.com/jQuery.when/

  4. 0

    Retirar el jQuery .getScript función, la cual se carga el script y lo incluirá en el documento actual.

    1) La ruta de acceso debe ser /static/js/plugin.js, en relación a su documento.

    2) No. Cada archivo es cargado por una sola petición HTTP.

    • Trató de ambos /static/js/plugin.js y /static/js/plugin.js pero aún así no se carga. Cualquier otra forma de cruz-comprobar la ruta de acceso?
    • Uso Firefox cuando en desarrollo. Instalar Firebug (plugin) que es gratuito. Dentro de eso, activar todos los «paneles de depuración» y un «punto de ruptura» donde usted necesita para detener el javascript. A continuación, puedes pasar el ratón sobre el activo variables y leer su valor actual. Muy agradable!
  5. 0

    Me gustaría comprobar Firebug del neto ficha para ver si se ha cargado correctamente, y el camino que está tratando de descargar.

    La ruta de acceso será desde el documento en el que el JavaScript se incluyó.

    Yo también mantener un objeto de configuración como esta (PHP, en este ejemplo)

    var config = { basePath: '<?php echo BASE_PATH; ?>' };

    Entonces usted podría hacer

    var request = config.basePath + 'path/to/whatever.js';
  6. 0

    Puede utilizar '../' para establecer la ruta de secuencia de comandos como base de la ruta. A continuación, agregue la ruta de acceso relativa para el

        $.getScript("../plugin.js").done(function(script, textStatus ) {
        alert("loaded:" + textStatus);
    }).fail(function(script, textStatus ) {
        alert("failed: " + textStatus);
    });

Dejar respuesta

Please enter your comment!
Please enter your name here