Aslında, gerçek ilerlemeyi göstermeyen basit bir ilerleme tekerleği için olduğu gibi (uygulamanızın bir şeyler yaptığı gibi), basit bir animasyonlu resim öneririm (örneğin, http://www.ajaxload.info/ adresinden bir tane oluştur).
bir animasyonlu image/gif bir seçenek değilse:
basit bir çözüm birkaç resim oluşturma ve dairesel biçimde bunların yerine olacaktır.
Timer updateAnim = new Timer() {
@Override
public void run() {
currentImage = (currentImage + 1) % NO_IMAGES;
setVisibilities();
this.schedule(UPDATE_TICK);
}
};
private void setVisibilities() {
img1.setVisible(false);
img2.setVisible(false);
switch (currentImage) {
case 0:
img1.setVisible(true);
break;
case 1:
img2.setVisible(true);
break;
}
}
setVisibilities()
sadece tüm diğer görünmeyen görünür Geçerli resmi ayarlar: Ben temelde kendisini çağıran bir zamanlayıcı yapmak, son zamanlarda bu kullandı. Bunu, resim URL'sini değiştirmekten daha hızlı yaşadım (yalnızca bir Resim kullanarak,
img.setURL(String url);
'u arayarak).
Şimdi sadece updateAnim.schedule(UPDATE_TICK);
numaralı telefonu arayın ve çalışacaktır.
Sanırım en hızlısı (tarayıcı bunu optimize edebilir) bir CSS animasyonu kullanmak (bir resim oluşturmak ve döndürmek) olurdu, ama muhtemelen aynı zamanda en karmaşık (o kadar fazla kullanmadıysanız) Sanırım aslında bence daha basit;). CSS rotasyon animasyonları hakkında this adresine bir göz atın.
Gerçek bir ilerleme çubuğu (aslında ilerlemeyi gösterir) yapmak istiyorsanız, ilerlemeye çağrılan bir geri aramaya ihtiyacınız vardır. Bu ilerleme geri bildirimde resimlerinizi/CSS geçişlerinizi güncellemeniz yeterlidir.
Hangi bariz nedenlerden dolayı? :) sunucu tarafı kodu genellikle ms yanıtlar, bu yüzden bir ilerleme çubuğu ekleme ve 100ms sonra kaldırılması sinir bozucu titreşen gibi görünecek – milan
Veri sunucumun karmaşıklığı nedeniyle yanıt vermek için 3 saniyeye kadar ihtiyacım var. SQL'i daha sonra optimize etmeye çalışacağım, ancak bazı çağrılar için 100 ms'nin altında olmayacak.Düşünmemi sağladın ve ihtiyacın olmadığı yerde ilerleme çarkı göstermemeye çalışacağım, ama bazı sunucu çağrıları için kesinlikle buna ihtiyacım olacak. –