0

Я пытаюсь написать большой проект, который включает в себя много кода. Вот почему я хочу отделить функциональные возможности от разных файлов.Есть ли более стандартный способ возобновления функции из jQuery ajax call?

первый файл, dataJS, я делаю вызов AJAX для получения данных из файла JSON. второй файл, showJS Я хочу отобразить данные, полученные из файла dataJS.

Когда дело доходит до реализации, я понимаю, что AJAX вызов занимает больше времени, и даже если я включаю dataJS и showJS в порядке, showJS все равно получите нулевые данные

поэтому я сделал функцию под названием continueFromDataJS() в showJS файл и вызов continueFromDataJS() в конце AJAX успех функция.

Я думаю, что это довольно македо. Есть ли стандартный способ сделать это?

Кроме того, все intellisense в моей Visual Studio ушли. Несмотря на отдельные файлы, есть ли способ заставить visual studio получить intellisense из dataJS?

Спасибо

+0

Можете ли вы показать нам какой-то код, а не просто его описать? Как загружается код, как/когда он выполняется, каковы значения времени выполнения и т. Д. – David

ответ

0

извините, я не знаю, как добавить следить за вопрос это код

для простоты я переименовать некоторые файлы и принимать только какую-то часть из него. Надежда, что помогает

код в HTML

код dataJS.js

var planets = []; 
var jsonData = null; 

$(function() { 

$.getJSON("Scripts/planetData.js", function (data) { 
    //planets[0] = new planet("uranus", "career", 45, 700, 400, 0.1, 5, 3); 
    jsonData = data; 
    for (var i = 0; i < data.planets.length; i++) { 

     var curPlanet = data.planets[i]; 

     planets[i] = new planet(curPlanet.graphic, i, curPlanet.field, curPlanet.planetInitialAngle, curPlanet.distanceFromStar, curPlanet.planetRadius, curPlanet.planetRevolvingSpeed, curPlanet.planetRotationSpeed, curPlanet.contents.length); 

     $("#result").append("<p>" + curPlanet.graphic + " " + curPlanet.field + " " + curPlanet.planetInitialAngle + " " + curPlanet.distanceFromStar + " " + curPlanet.planetRadius + " " + curPlanet.planetRevolvingSpeed + " " + curPlanet.planetRotationSpeed + " " + curPlanet.contents.length + "</p>"); 

    } 


    callDisplayScript(); //**continue from showJS.js file is that the way to do this?** 

    }); 

}); 
// more functions below in dataJS.js 

showJS.js

function callDisplayScript() { **// this is the ugly part. What's the proper way to do it?** 
    $("#display #close").click(function() { 
     $("#display").fadeOut('slow'); 
    }); 
    $article = $("#display article"); 
    $article.empty(); 
    var data = jsonData.planets[pID].contents; // **this line won't get jsonData if it's out this curly brace.** 

    for (var i = 0; i < data.length; i++) { 
     $article.append(data[i].title); 
     $article.append(data[i].content); 
    } 

    $("#display").fadeIn('slow'); 
}; 

не забудьте ответить на мой вопрос IntelliSense. Я хочу в datajs.js автоматически намекать планет и jsonData, объявленных в datajs.js это возможно?

 Смежные вопросы

  • Нет связанных вопросов^_^