2016-05-09 12 views
0

Ich baue eine Appcelerator App, die das Profilbild eines regulären Benutzers abruft, auf diese Weise:Ist es möglich, ein zwischengespeichertes Bild bei Appcelerator zu entfernen?

<ImageView id="profileImage" defaultImage="/images/default_profile.jpg"></ImageView> 

Und der Controller wird das Bild vom Server (die URL ist für jeden Benutzer eindeutig):

$.profileImage.image = "myserver.com/profile/1/image" 

das Problem ist, dass ich das Profilbild aktualisieren (um einen neuen zu dem Server gesendet wird), aber der Inhalt wird nie aktualisiert, weil es die gleiche uRL verwendet.

Zum Beispiel: 1) myserver.com/profile/1/image ist ein Bild "X" 2) I senden "Y" an den Server 3) myserver.com/profile/1/image bekommt ein Bild "X". Weil es von Appcelerator zwischengespeichert wird. Aber natürlich würde ich gerne das "Y" bekommen.

So ist es möglich, ein zwischengespeichertes Bild bei Appcelerator zu entfernen?

Setzen Sie einen get-Parameter (wie "? Datum = jetzt())") ist keine Antwort hier, weil ich das Profilbild in verschiedenen Ansichten bekommen muss, und ich muss dieses zwischengespeichert haben.

Vielen Dank im Voraus.

Guille

Antwort

2

Remote-Bilder in Titanium immer gecached automatisch auf der Grundlage ihrer Urls.

also Ihre Aufgabe erledigt zu machen, haben Sie zwei Möglichkeiten, es zu tun:

  1. ändern Sie die URL von dem Server (ich weiß, es ist kompliziert und nicht sehr gut Ansatz).

  2. Oder nutzen Sie diese Funktion

    function clearCacheDirectory() { 
        try { 
         Ti.API.info("deleting cache..."); 
         var temp = Ti.Filesystem.getApplicationCacheDirectory(); 
    
         var cacheDir = Titanium.Filesystem.getFile(temp); 
    
         cacheDir.deleteDirectory(true); 
    
        } catch(exc) { 
        Ti.API.info("Cache error = " + exc); 
        } 
    } 
    
    • Above Funktion wird der gesamte Inhalt des Cache-Verzeichnis löschen und es funktioniert auf beiden iOS und Android
    • Siehe Ti.FileSystem here es ist alles was Sie brauchen um Ihr Problem zu lösen.

Dank

0

Als Prashant Saini sagte, war das einzige Werk für mich die url ändert jeder Imageview geladen wird, Hinzufügen zufällige Speicherung zu url, zum Beispiel:

var randfake = new Date();  
$.userPhoto.image = /serverpath/images/?randfake='+randfake.getTime(); 
Verwandte Themen