2014-06-16 16 views
5

Ember Data, sürümden sürüme hızlı bir şekilde taşınıyor ve veri kaydetme yöntemi bununla birlikte değişiyor. Şu anda, sürüm 1.0.0-beta.8.2a68c63a ile uygun yöntem, bir kaydı güncelleştirmek ve daha sonra sunucuya bir PUT isteğini tetiklemek için bir record.save() yapmaktır. Geçerli uygulamam ile aynı anda birden fazla kaydı güncelliyorum ve bu sunucuya 50+ PUT ajax istekleri içerebilir. Performans ve verimlilik sorunları konusunda endişe duyuyoruz ve toplu iş istekleri yapmak için herhangi bir belge bulamadık. Bir şey varsa, aynı şeyi yapmak isteyen ve iyi bir çözüm bulamayan, çevrimiçi ortamda başka birçok insan bulduk.Ember Data toplu olarak sunucuya kaydediliyor

Şu anda bu nesneleri el ile serileştirmeyi ve onları Ember Data'nın tüm noktası olduğunu düşündüğüm sunucuya geri kaydetmeyi araştırıyorum. Bu yüzden, Ember Data'yı hiç kullanmamak ve CRUD isteklerini manuel olarak kodlamak ve bunların tümünü işlemek için kendi veri katmamı yapmak ve yalnızca verileri Veri Çubuğu şablonlarına kaydetmek ve bunlara bağlanmak için ArrayControllers ve ObjectControllers kullanmak. Bunun faydaları, ihtiyaç duyduğum şekilde çalışacağı (toplu talepler) ve kodun Ember Data'nın gelecekteki sürümleriyle kırılmayacağı gibi görünüyor. Herhangi bir düşünce ya da çözüm?

+2

Birden çok kaynak türünden ve aynı son noktaya ulaşan birden çok güncelleştirme hakkında konuşuyorsanız, tamamen Ember Data'dan uzaklaşırdım. – Kingpin2k

+0

Evet, bir sayfadaki bloklar listesinin yeniden düzenlenmesi ve sonra konumlarının kaydedilmesi anlamına gelir; bu, tüm blokların güncellenmesi anlamına gelir. Yani bir tane taşıdığınızda, hepsi değişir, bu her seferinde sunucuya 50 ila 100 PUT komutu verebilir. Ember Data, bunun için gerçekten hazır değil gibi görünüyor. –

+2

Kesinlikle, kendi uygulamanızı yuvarlamadan daha iyisi, çok ağır olmamalı. – Kingpin2k

cevap

0

DS.EmbeddedRecordsMixin ile yapabilirsiniz. Bir sayfa kaydını ilişkili blokların tüm kayıtlar bu bir PUT isteğine dahil edilecektir kaydetmek zaman

import DS from 'ember-data'; 

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
    blocks: { serialize: 'records' } 
    } 
}); 

: En Sayfa nesnesi birçok Blokları varsa, page-serializer.js gibi görünecektir (örneğin, yorumunuzla dayanarak) .

here belgelerine bakın.

+0

Şu an durum bu olabilir, ancak Ember'i kullanmayı bıraktım çünkü çok fazla büyüdü ve çalışmak karmaşıktı. Yine çok fazla Sproutcore gibi hissediyorum. –

+0

Endişeye gerek yok. Başkalarının buna rastlayabileceğini düşündüm. – andorov

İlgili konular