Mı setItem(key,value)fonksiyon asenkron?
localStorage.setItem("key",someText);
Mı setItem(key,value)fonksiyon asenkron?
localStorage.setItem("key",someText);
Yanıtlar:
Hayır, tüm localStoragearamalar eşzamanlıdır.
nbfveya kimlikten expkaynaklanmaktadır.
Aslında. web depolama artık HTML5 temel standardının bir parçası değildir, bölünmüştür.
İlgili (taslak) spesifikasyon burada bulunabilir ve fark edeceğiniz tek şey, herhangi bir yerde senkronize veya asenkrondan bahsetmemesidir.
Bununla birlikte, metnin analizi eşzamanlı olması gerektiğini önerecektir (kalın harfim):
SetItem (anahtar değeri) yöntemi verilen anahtar ile bir anahtar / değer çifti zaten nesnesi ile ilişkili listede olup olmadığını ilk kontrol gerekir.
Aksi takdirde , verilen anahtarla ve değeri değer olarak ayarlanmış olarak listeye yeni bir anahtar / değer çifti eklenmelidir .
Verilen anahtar listede mevcutsa ve değeri değere eşit değilse , değerinin değere güncellenmesi gerekir . Önceki değeri değerine eşitse, yöntem hiçbir şey yapmamalıdır.
Standartlar olarak, kelimeler gibi must, shallve maytaşımak çok özel anlamları. Yöntemin ne yapması gerektiğinden bahsediyor olması, onu daha sonraki bir zamana ertelemek yerine, yöntemin kendisinin yapması gerektiği anlamına gelir.
Bu aynı zamanda sağduyu da erteliyor. Eğer setItemasenkron vardı onun önceki değer elde, onu hemen ardından belirli bir değere bir öğe ayarlamak almak mümkün olacaktır.
Orada olan asenkron davranış olasılığı ima depolama arabirimi bölümünün altındaki bir not:
Bu belirtim, yukarıdaki yöntemlerin verilerin fiziksel olarak diske yazılmasını beklemesini gerektirmez. Yalnızca anahtar / değer çiftlerinin aynı temel listesine erişen farklı komut dosyalarının gördüklerinde tutarlılık gereklidir.
Ancak, bu yalnızca uzun vadeli depolamaya yazılanlar açısından. Son cümle, aynı depolama nesnesine erişen komut dosyalarının işleri eşzamanlı olarak görmek için gerekli olduğunu belirtir.
LocalStorage. 10 ürün sakladığımda 3 tanesini özlüyorum. Gerçekten eşzamansız olduğuna inanıyorum, ama yapılıp yapılmadığını nasıl kontrol edeceğim. geri aramayı nereye eklemeliyim?
must, shall, mayRFC2119 yukarıdaki yorum ietf.org/rfc/rfc2119.txt
Bu soru zaten cevaplandı. Gelecekte buna gelen herkes için javascript doğası gereği eşzamanlıdır. Şeyler yalnızca eşzamansızdır, biz bunu yapmak için belirtildik. Bu nedenle, eşzamansız olarak belirtilmedikçe her şeyin eşzamanlı olduğunu varsayabilirsiniz. Bu, Javascript ile yazılmış, Javascript ile yazılmış çerçevelerle değil. Bazen bu uygulamayı bozarlar. NodeJ'ler gibi.