2016-05-14 4 views
-2

Я новичок в Javascript, и мне была задана задача. Это в основном приложение для погоды. Я создал страницу, которая будет выводить широту, долготу и псевдоним места на основе API геолокации google. И теперь я хочу назвать прогноз.io, чтобы вернуть результаты. То, что я должен сделать, это сохранить широту, долготу и псевдоним в LocalStorage ... при нажатии кнопки «Сохранить местоположение» и сохранить все местоположения в списке, чтобы они могли НАЖМИТЕ и получать информацию о погоде. Но тогда мне дают скелетный код, который я понятия не имею, что он делает. В чем разница между функцией this.AddLocation и функцией savelocation(), которую я написал на обратной стороне. Единственная функция, которую я здесь написал, это функция savelocation(), которая сохранит местоположение в локальном хранилище. Другие функции - это код скелета, который необходимо заполнить.Кэши! В чем разница между функцией saveLocations() и addLocation()?

Любое объяснение того, что должны делать методы в классе, поможет много!

код, как показано ниже:

// Returns a date in the format "YYYY-MM-DD". 
Date.prototype.simpleDateString = function() { 
    function pad(value) 
    { 
     return ("0" + value).slice(-2); 
    } 

    var dateString = this.getFullYear() + "-" + 
      pad(this.getMonth() + 1, 2) + '-' + 
      pad(this.getDate(), 2); 

    return dateString; 
} 

// Date format required by forecast.io API. 
// We always represent a date with a time of midday, 
// so our choice of day isn't susceptible to time zone errors. 
Date.prototype.forecastDateString = function() { 
    return this.simpleDateString() + "T12:00:00"; 
} 


// Code for LocationWeatherCache class and other shared code. 

// Prefix to use for Local Storage. You may change this. 
var APP_PREFIX = "weatherApp"; 

function LocationWeatherCache() 
{ 
    // Private attributes: 

    var locations = []; 
    var callbacks = {}; 

    // Public methods: 

    // Returns the number of locations stored in the cache. 
    // 
    this.length = function() { 
    }; 

    // Returns the location object for a given index. 
    // Indexes begin at zero. 
    // 
    this.locationAtIndex = function(index) { 
    }; 

    // Given a latitude, longitude and nickname, this method saves a 
    // new location into the cache. It will have an empty 'forecasts' 
    // property. Returns the index of the added location. 
    // 
    this.addLocation = function(latitude, longitude, nickname) 
    { 
    } 

    // Removes the saved location at the given index. 
    // 
    this.removeLocationAtIndex = function(index) 
    { 
    } 

    // This method is used by JSON.stringify() to serialise this class. 
    // Note that the callbacks attribute is only meaningful while there 
    // are active web service requests and so doesn't need to be saved. 
    // 
    this.toJSON = function() { 
    }; 

    // Given a public-data-only version of the class (such as from 
    // local storage), this method will initialise the current 
    // instance to match that version. 
    // 
    this.initialiseFromPDO = function(locationWeatherCachePDO) { 
    }; 

    // Request weather for the location at the given index for the 
    // specified date. 'date' should be JavaScript Date instance. 
    // 
    // This method doesn't return anything, but rather calls the 
    // callback function when the weather object is available. This 
    // might be immediately or after some indeterminate amount of time. 
    // The callback function should have two parameters. The first 
    // will be the index of the location and the second will be the 
    // weather object for that location. 
    // 
    this.getWeatherAtIndexForDate = function(index, date, callback) { 
    }; 

    // This is a callback function passed to forecast.io API calls. 
    // This will be called via JSONP when the API call is loaded. 
    // 
    // This should invoke the recorded callback function for that 
    // weather request. 
    // 
    this.weatherResponse = function(response) { 
    }; 

    // Private methods: 

    // Given a latitude and longitude, this method looks through all 
    // the stored locations and returns the index of the location with 
    // matching latitude and longitude if one exists, otherwise it 
    // returns -1. 
    // 
    function indexForLocation(latitude, longitude) 
    { 
    } 
} 

// Restore the singleton locationWeatherCache from Local Storage. 
// 
function loadLocations() 
{ 
} 

// Save the singleton locationWeatherCache to Local Storage. 
// 
function saveLocations(nickname,latitude,longtitude){ 
var locations = JSON.parse(localStorage.getItem('APP_PREFIX')) || []; 
    locations.push({nickname: nickname, latitude: latitude, longtitude:longtitude}); 
    localStorage.setItem('APP_PREFIX', JSON.stringify(locations)); 
} 

ответ

0

this.addLocation добавляет объект местоположения в var locations. Также необходимо позвонить saveLocations(), чтобы сохранить эти изменения до localStorage.

1

Как преподаватель этого подразделения, я предлагаю, чтобы Stack Overflow не было лучшим местом для заданий по заданию. Ответ на ваш вопрос требует знания инструкций по назначению, которые доступны только учащимся, принимающим блок.

Кроме того, вы не должны публиковать какой-либо ваш код (т. Е. Ваше решение проблемы) публично. В рамках отправки задания вы подписываете заявление, в котором говорится, что это ваша собственная работа, и вы ни с кем не делились своей работой. Проводка вашего кода в Stack Overflow нарушает это. Не делай этого!

Я предлагаю вам внимательно прочитать инструкции по назначению и задание FAQ. Если у вас все еще есть вопросы, спросите об этом форуме, спросите своего демонстранта или спросите на консультациях или на рабочем столе.

В ответ на ваш вопрос saveLocations() следует сохранить экземпляр LocationWeatherCache на локальное хранилище. Метод addLocation() должен добавить новое местоположение в атрибут массива класса LocationWeatherCache и (как говорит HotGirlInYourPracDoingENG1003) он должен позвонить saveLocations(), чтобы это изменение не сохранялось.

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

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