Roger Wenas

Teknologi Framework Web

22 Nov 2013 0 kali dibaca

AngularJS 1.2: Two-Way Binding Itu Bug, Bukan Fitur

Indah di demo. Sampai data 2000 row dan UI freeze setiap scroll.

1 menit membaca

AngularJS 1.2.0 stable 14 November 2013. Diajak teman trial untuk admin dashboard mereka.

Two-way binding dengan ng-model itu indah di demo. <input ng-model="user.name"> — ketik, model update, view update otomatis. Magic.

Sampai data 2000 row.

$scope.$watch triggered di setiap digest cycle. 2000 watchers × 5 trigger per detik = lag visible. UI freeze setiap kali user scroll.

Solusi: one-time binding {{::user.name}} (1.3+, saat itu belum ada). Atau pakai ng-bind di tempat strategis. Atau pagination data.

Kami pilih pagination 50 row/halaman.

Pelajaran lain: dependency injection via string parameter parser. Saat minified, parameter rename jadi a, b, c, DI rusak.

// Salah saat minified
app.controller('Ctrl', function($scope, $http) { ... });

// Aman: array notation
app.controller('Ctrl', ['$scope', '$http', function(s, h) { ... }]);

Setiap minify error makan dua jam debug.

Angular 2 baru pengumuman, butuh dua tahun lagi.

Tulisan terkait

Mungkin terkait

Berdasarkan kemiripan isi tulisan.