我的問題更關係到tizen和S2。我正在從API中獲取天氣,我正在嘗試每15分鐘做一次。儘管如此,某些地方正在崩潰,而我無法使用這個控制檯日誌。我的猜測是,它與屏幕處於活動狀態或非活動狀態有關。從互聯網瀏覽器嘗試時,它工作正常。javascript setInterval錯誤檢查
var weatherVar = setInterval(runWeather, 900000);
function runWeather() {
getLocation();
}
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
else {
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(position) {
var geoLat = position.coords.latitude,
geoLong = position.coords.longitude,
key = "my API key",
WeatherURL = "http://api.wunderground.com/api/" + key +
"/conditions/q/" + geoLat + "," + geoLong + ".json";
$.ajax({
url : WeatherURL,
dataType : "jsonp",
success : function(parsed_json) {
var tempF = parsed_json['current_observation']['temp_f'];
var weatherDescription = parsed_json['current_observation']['icon'];
document.getElementById("currentTemp").innerHTML = tempF + '°';
document.getElementById("condition").innerHTML = weatherDescription;
}
});
}
編輯,我最初周圍的一些變量張貼這當某種原因發生變化。這些問題已得到解決,與所述問題無關。
我試過的另一種方法是將當前時間與從天氣報告中提取的時間戳進行比較。不過,我的時間每隔半秒鐘更新一次,所以在啓動呼叫和生成天氣報告之間的延遲時間內,我一直在地下地下百次。爲了解決這個問題,我創建了一個變量,並在啓動調用時爲其賦值-1。然後,當天氣報告返回時,它會根據天氣時間戳將該值更改爲數字。但是,這也有問題,我嘗試創建一個錯誤檢查,包括在變量變爲-1時隨時創建的第二個計時器。它會等一會兒,看看它是否仍然是-1,如果是,它會嘗試再次運行getLocation。不過,這導致我再次平了吳。有什麼想法嗎?謝謝!
我添加了一個提醒,並且間隔沒有問題。問題似乎是當屏幕處於非活動狀態時,因爲警報的位置使得調用網絡的功能在我點擊確定之前不會運行。打好意味着屏幕是活躍的,我從來沒有遇到過問題。我想這是對更多tizen具體研究。 –
我評論過快。也許改變連接是一個問題。我離開了我的Wi-Fi連接了一下,我的警報停止了。不太清楚這將如何連接到警報。 –
您是否在config.xml中添加了互聯網特權和域訪問權限? –