int mHours = t / 60; //since both are ints, you get an int
int mMinutes = t % 60;
System.out.printf("%d:%02d", "" +mHours, "" +mMinutes);
В файле Вашего виджета Info.plist не забывайте устанавливать Ваш AllowNetworkAccess
ключ к истинному.
Лучший способ состоит в том, чтобы использовать Ajax (можно найти простое учебное руководство на этой странице Tizag ). Причина состоит в том, что любая другая техника, которую можно использовать, требует большего количества кода, она, как гарантируют, не будет работать, перекрестный браузер без переделывает, и требует, чтобы Вы использовали больше клиентской памяти путем открытия скрытых страниц в кадрах передающие URL, анализирующие их данные и закрывающие их. Ajax является способом войти в эту ситуацию. То, что мои два года JavaScript тяжелый разговор разработки.
Я не знаком с Mac OS Виджеты Dashcode, но если бы они позволяют Вам пользоваться библиотеками JavaScript и поддерживать XMLHttpRequests, я использовал бы jQuery и сделал бы что-то вроде этого:
var page_content;
$.get( "somepage.php", function(data){
page_content = data;
});
Прототип делает его очень простым
new Ajax.Request( '/myurl', {
method: 'get',
parameters: { 'param1': 'value1'},
onSuccess: function(response){
alert(response.responseText);
},
onFailure: function(){
alert('ERROR');
}
});
IE будет кэшировать URL для создания загрузки быстрее, но если Вы, скажем, опросите сервер, с промежутками пытаясь получить новую информацию, IE будет кэшировать тот URL и вероятно возвратит тот же набор данных, который Вы всегда имели.
Независимо от того, как Вы заканчиваете тем, что делали Ваш ПОЛУЧАТЬ запрос - ваниль JavaScript, Прототип, jQuery, и т.д. - удостоверяются, что Вы помещаете механизм на месте для борьбы с кэшированием. Для борьбы с этим добавьте уникальный маркер до конца URL, Вы собираетесь быть ударом. Это может быть сделано:
var sURL = '/your/url.html?' + (new Date()).getTime();
Это добавит уникальную метку времени до конца URL и предотвратит любое кэширование.
Вот код, чтобы сделать это непосредственно с JavaScript. Но, как ранее упомянуто, Вы были бы очень более обеспечены с библиотекой JavaScript. Моим фаворитом является jQuery.
В случае ниже, страницу ASPX (это обслуживает как сервис REST бедного человека) называют для возврата объекта JSON JavaScript.
var xmlHttp = null;
function GetCustomerInfo()
{
var CustomerNumber = document.getElementById( "TextBoxCustomerNumber" ).value;
var Url = "GetCustomerInfoAsJson.aspx?number=" + CustomerNumber;
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = ProcessRequest;
xmlHttp.open( "GET", Url, true );
xmlHttp.send( null );
}
function ProcessRequest()
{
if ( xmlHttp.readyState == 4 && xmlHttp.status == 200 )
{
if ( xmlHttp.responseText == "Not found" )
{
document.getElementById( "TextBoxCustomerName" ).value = "Not found";
document.getElementById( "TextBoxCustomerAddress" ).value = "";
}
else
{
var info = eval ( "(" + xmlHttp.responseText + ")" );
// No parsing necessary with JSON!
document.getElementById( "TextBoxCustomerName" ).value = info.jsonData[ 0 ].cmname;
document.getElementById( "TextBoxCustomerAddress" ).value = info.jsonData[ 0 ].cmaddr1;
}
}
}
$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);
// Create a request variable and assign a new XMLHttpRequest object to it.
var request = new XMLHttpRequest()
// Open a new connection, using the GET request on the URL endpoint
request.open('GET', 'restUrl', true)
request.onload = function () {
// Begin accessing JSON data here
}
// Send request
request.send()
<button type="button" onclick="loadXMLDoc()"> GET CONTENT</button>
<script>
function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
var url = "<Enter URL>";``
xmlhttp.onload = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == "200") {
document.getElementById("demo").innerHTML = this.responseText;
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
</script>
Если вы хотите использовать код для виджета Dashboard и не хотите включать библиотеку JavaScript в каждый созданный виджет, вы можете использовать объект XMLHttpRequest, который изначально поддерживается Safari.
Как сообщил Эндрю Хеджес, виджет по умолчанию не имеет доступа к сети; вам нужно изменить этот параметр в info.plist, связанном с виджетом.