Hola usuario de nuestra página, hemos encontrado la respuesta a tu pregunta, desplázate y la obtendrás un poco más abajo.
Solución:
Prueba esto:
var pageExecute =
fileContents:"Null",
pagePrefix:"Null",
slides:"Null",
init: function ()
$.ajax(
url: "./seeds/Ag.txt",
async: false,
success: function (data)
pageExecute.fileContents = data;
);
;
Prueba esto:
HTML:
JavaScript:
$(function()
$( "#target" ).load( "pathToYourFile" );
);
En mi ejemplo, el div se llenará con el contenido del archivo. Echa un vistazo a jQuery .load()
función.
La “ruta a su archivo” puede ser cualquier recurso que contenga los datos que desea cargar. Eche un vistazo a la documentación del método de carga para obtener más información sobre cómo usarlo.
Editar: otros ejemplos para obtener el valor a manipular
Utilizando $.get()
función:
$(function()
$.get( "pathToYourFile", function( data )
var resourceContent = data; // can be a global variable too...
// process the content...
);
);
Utilizando $.ajax()
función:
$(function()
$.ajax(
url: "pathToYourFile",
async: false, // asynchronous request? (synchronous requests are discouraged...)
cache: false, // with this, you can force the browser to not make cache of the retrieved data
dataType: "text", // jQuery will infer this, but you can set explicitly
success: function( data, textStatus, jqXHR )
var resourceContent = data; // can be a global variable too...
// process the content...
);
);
Es importante tener en cuenta que:
$(function()
// code...
);
Es lo mismo que:
$(document).ready(function()
// code
);
Y normalmente necesita usar esta sintaxis, ya que le gustaría que el DOM esté listo para ejecutar su código JavaScript.
Aquí está su problema: tiene una etiqueta de secuencia de comandos en el cuerpo, que solicita los datos AJAX. Incluso si le pidiera que escribiera los datos en su shell, y no solo que los soltara… …ese es su problema número uno.
Este es el por qué:
AJAX es asíncrono. Bien, eso ya lo sabemos, pero ¿qué significa eso?
Bueno, significa que irá al servidor y pedirá el archivo. El servidor irá a buscar y lo devolverá. Luego, su computadora descargará los contenidos. Cuando los contenidos estén 100% descargados, estarán disponibles para su uso.
…cosa es…
Su programa no está esperando que eso suceda. Le dice al servidor que se tome su tiempo y, mientras tanto, seguirá haciendo lo que está haciendo y no volverá a pensar en el contenido hasta que reciba una llamada del servidor.
Bueno, los navegadores son realmente rápidos cuando se trata de renderizar HTML. Los servidores son realmente rápidos para servir static (texto sin formato/img/css/js) también.
Así que ahora estás en una carrera. ¿Qué pasará primero? ¿El servidor devolverá la llamada con el texto o el navegador presionará la etiqueta del script que solicita el contenido del archivo?
Cualquiera que gane en esa actualización es el que sucederá.
Entonces, ¿cómo evitas eso? Devoluciones de llamadas.
Las devoluciones de llamada son una forma diferente de pensar. En JavaScript, realiza una devolución de llamada dando a la llamada AJAX una función para usar, cuando se completa la descarga.
Sería como llamar a alguien desde una línea de trabajo y decirle: marque ESTA extensión para comunicarse conmigo, cuando tenga una respuesta para mí.
En jQuery, usará un parámetro llamado “éxito” en la llamada AJAX. Hacer success : function (data) doSomething(data);
una parte de ese objeto que está pasando a la llamada AJAX. Cuando el archivo se descargue, tan pronto como se descargue, jQuery pasará los resultados a la función de éxito que le diste, que hará lo que esté hecho para hacer, o llamará a las funciones para las que fue creado.
Darle una oportunidad. Seguro que es mejor que correr para ver qué descargas primero.
Comentarios y calificaciones del artículo
Recuerda algo, que puedes optar por la opción de añadir una estimación acertada si diste con el arreglo.