{"id":178,"date":"2015-01-22T07:39:43","date_gmt":"2015-01-22T06:39:43","guid":{"rendered":"http:\/\/blog.thecodecampus.de\/?p=178"},"modified":"2025-04-17T11:46:51","modified_gmt":"2025-04-17T09:46:51","slug":"angularjs-performace-durch-one-time-binding-verbessern","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/","title":{"rendered":"AngularJS Performace durch One-Time-Binding verbessern"},"content":{"rendered":"<p>AngularJS 1.3 wurde im Oktober 2014 ver\u00f6ffentlicht und bringt neben zahlreichen Bugfixes auch neue Features. Als Feature bezeichnen die Angular JS Entwickler auch das fallenlassen der Unterst\u00fctzung des Internet Explorer 8. Das Feature auf das sich dieser Artikel bezieht wurde mit der Version 1.3.0-beta.16 hinzugef\u00fcgt.<\/p>\n<h2>\u00dcberblick \u00fcber die Features in Angular 1.3<\/h2>\n<ul>\n<li>keine IE8 Unterst\u00fctzung<\/li>\n<li>ngMessages<\/li>\n<li>$watchGroup<\/li>\n<li>strict-DI<\/li>\n<li>One-Time-Binding<\/li>\n<\/ul>\n<p>Dieser Artikel fokussiert sich auf den letzen Punkt, das One-Time-Binding, das oft auch als BindOnce bezeichnet wird.<\/p>\n<h2>Das Problem<\/h2>\n<p>AngularJS bietet ein gro\u00dfartiges Data-Binding System, das es Entwicklern auf einfachste Weise erm\u00f6glicht Daten aus Controllern mit der UI zu verkn\u00fcpfen. Das funktioniert mit kleinen Datenmengen einwandfrei und ohne Kompromisse. M\u00fcssen jedoch gr\u00f6\u00dfere Datenmengen mit der UI verkn\u00fcpft werden kann es zu Performance Problemen kommen, siehe hierzu das Beispiel 1. Es zeigt eine Tabelle mit ~2.500 Eintr\u00e4ge mit Informationen \u00fcber St\u00e4dte (St\u00e4dtenamen, Postleitzahlen und weiteren Informationen). \u00dcber der Tabelle ist ein Textfeld zu sehen. Wird das Textfeld fokussiert und eine beliebige Taste dauerhaft gedr\u00fcckt ist zu erkennen, dass die UI einfriert und eine deutlich wahrnehmbare Verz\u00f6gerung entsteht.<\/p>\n<div class=\"box small important\">Die UI friert bei zu vielen Data-Bindings ein oder es kommt zu einer verz\u00f6gerten Darstellung<\/div>\n<h3><a href=\"http:\/\/plnkr.co\/edit\/CxdPZH3LukACFqbta2xX?p=preview\" target=\"_blank\" rel=\"noopener\">Beispiel 1: Performance Issue in AngularJS 1.3<\/a><\/h3>\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"500\" src=\"http:\/\/embed.plnkr.co\/CxdPZH3LukACFqbta2xX\/preview\"><\/iframe><\/p>\n<h2>Die Ursache<\/h2>\n<p>In dem Beispiel 1 werden die Daten mit doppelten geschweiften Klammern an die UI gebunden, ebenso k\u00f6nnte auch die ngBind-Direktive genutzt werden. Zu Demonstrationszwecken werden sowohl Funktionen, wie auch Filter eingesetzt.<\/p>\n<pre>{{zip.city | titleCase}}<\/pre>\n<p>&nbsp;<\/p>\n<pre>{{zip._id}}<\/pre>\n<p>&nbsp;<\/p>\n<pre>{{zip.pop | number}}<\/pre>\n<p>&nbsp;<\/p>\n<pre>    \r\n      {{isHugeCity(zip.pop) ? 'Yes' : 'No'}}\r\n              \r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>AngularJS erzeugt intern f\u00fcr jedes Binding einen Watcher, der die Property auf \u00c4nderungen \u00fcberwacht und die Darstellung bei einer etwaigen \u00c4nderung aktualisiert. Hierzu bedient sich Angular einer Technik, die als Dirty-Checking bezeichnet wird. Der Dirty-Check ist simple Funktion und hat die Aufgabe \u00c4nderungen an einer Property festzustellen. Er wird in der Digest-Phase f\u00fcr jeden einzelnen Watcher durchgef\u00fchrt und es wird der Callback eines Watchers getriggert wenn eine \u00c4nderung an einer Property festgestellt wurde. Es gilt der Grundsatz, dass eine Angular Anwendung ab <code>~2.000 Watchern\u00b9<\/code> inperformant wird, da jeder Watcher in jedem Angular-internen $digest-Zyklus \u00fcberpr\u00fcft werden muss. Wie in Beispiel 1 zu sehen ist, hat Angular ~18.000 Watcher erzeugt, die daf\u00fcr verantwortlich sind, dass die UI einfriert.<\/p>\n<p><a href=\"https:\/\/www.thecodecampus.de\/schulungen\/angular\" style=\"display: inline-block;\">\n<picture><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_big.png\" media=\"(min-width: 1024px)\"><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_medium.png\" media=\"(min-width: 600px)\"><img decoding=\"async\" src=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_small.png\" alt=\"Angular Schulungen\" class=\"alignnone size-full wp-image-38\">\n<\/picture>\n<\/a><\/p>\n<h2>Die L\u00f6sung<\/h2>\n<p>Die L\u00f6sung des zuvor beschriebene Problems ist ebenso simpel wie effektiv. Das Angular Team hat sich auf eine nette Syntax geeinigt. So kann eine Angular Expression mit einem Doppelten Doppelpunkt geprefixt werden um den Watcher nach einmaliger Evaluierung zu entfernen, siehe hierzu Beispiel 2. Wenn nun das Textfeld fokussiert und eine beliebige Taste dauerhaft gedr\u00fcckt wird, ist kein einfrieren der UI zu erkennen.<\/p>\n<div class=\"box small important\">Wenn sich die Daten, die in der UI angezeigt werden nach dem initialen Laden nicht mehr \u00e4ndern: One-Time-Binding verwenden<\/div>\n<h3><a href=\"http:\/\/plnkr.co\/edit\/mxe2MD8AwaRzHhF69M1F?p=preview\" target=\"_blank\" rel=\"noopener\">Beispiel 2: AngularJS 1.3 mit BindOnce<\/a><\/h3>\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"500\" src=\"http:\/\/embed.plnkr.co\/mxe2MD8AwaRzHhF69M1F\/preview\"><\/iframe><\/p>\n<h3>Neue Syntax<\/h3>\n<p>Angular Binding mit Watcher: <code>{{zip.city | titleCase}}<\/code><br \/>\nAngular Binding ohne Watcher: <code>{{::zip.city | titleCase}}<\/code><br \/>\nWie zu sehen ist gen\u00fcgt es den Code dahingehend anzupassen, dass <code>::<\/code> vor die Expression zu schreiben ist. Angular evaluiert die Expression einmalig und entfernt anschlie\u00dfend den Watcher. Zu beachten ist jedoch, dass eine \u00c4nderung des Datenmodells keine Aktualisierung der UI nach sich zieht, da die Properties nun nicht mehr \u00fcberwacht werden.<\/p>\n<h2>Alternative<\/h2>\n<p>Da dieses Feature erst ab der Angular Version 1.3 verf\u00fcgbar ist, muss f\u00fcr eine Angular Anwendung die eine Version vor 1.3 verwendet auf ein Modul aus der Community zur\u00fcckgreifen. Das bindonce-Modul von Pasquale Vazzana ist auf GitHub <a href=\"https:\/\/github.com\/Pasvaz\/bindonce\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Pasvaz\/bindonce<\/a> inklusive einer umfassenden Dokumentation zu finden. Beispiel 3 zeigt abschlie\u00dfend die Verwendung des BindOnce-Moduls mit der Angular Version 1.2<\/p>\n<div class=\"box small important\">F\u00fcr \u00e4ltere Angular Versionen <code>bindonce<\/code> Direktive nutzen.<\/div>\n<h3><a href=\"http:\/\/plnkr.co\/edit\/I5Snf8cy6pRjLN5TgxUF?p=preview\" target=\"_blank\" rel=\"noopener\">Beispiel 3: AngularJS 1.2 mit externem BindOnce-Modul\u00b2<\/a><\/h3>\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"500\" src=\"http:\/\/embed.plnkr.co\/I5Snf8cy6pRjLN5TgxUF\/preview\"><\/iframe><\/p>\n<h2>Further Reading<\/h2>\n<ul>\n<li>\u00b9 Databinding in AngularJS: <a href=\"http:\/\/stackoverflow.com\/a\/18381836\" target=\"_blank\" rel=\"noopener\">http:\/\/stackoverflow.com\/a\/18381836<\/a><\/li>\n<li>\u00b2 Pasquale Vazzana BindOnce-Modul: <a href=\"https:\/\/github.com\/Pasvaz\/bindonce\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Pasvaz\/bindonce<\/a><\/li>\n<li>Beispiel 1: <a href=\"http:\/\/plnkr.co\/edit\/CxdPZH3LukACFqbta2xX?p=preview\" target=\"_blank\" rel=\"noopener\">Angular 1.3 ohne BindOnce<\/a><\/li>\n<li>Beispiel 2: <a href=\"http:\/\/plnkr.co\/edit\/mxe2MD8AwaRzHhF69M1F?p=preview\" target=\"_blank\" rel=\"noopener\">Angular 1.3 mit BindOnce<\/a><\/li>\n<li>Beispiel 3: <a href=\"http:\/\/plnkr.co\/edit\/I5Snf8cy6pRjLN5TgxUF?p=preview\" target=\"_blank\" rel=\"noopener\">Angular 1.2 mit externem BindOnce Modul<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>AngularJS 1.3 wurde im Oktober 2014 ver\u00f6ffentlicht und bringt neben zahlreichen Bugfixes auch neue Features. Als Feature bezeichnen die Angular JS Entwickler auch das fallenlassen der Unterst\u00fctzung des Internet Explorer 8. Das Feature auf das sich dieser Artikel bezieht wurde mit der Version 1.3.0-beta.16 hinzugef\u00fcgt. \u00dcberblick \u00fcber die Features in Angular 1.3 keine IE8 Unterst\u00fctzung [&#8230;]<br \/><a class=\"meta-big\" href=\"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/\"> READ MORE<\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[38,62,35,85,61,36,37],"class_list":["post-178","post","type-post","status-publish","format-standard","hentry","category-angularjs","tag-angular-1-3","tag-angularjs","tag-bindonce","tag-german","tag-javascript","tag-one-time-binding","tag-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog<\/title>\n<meta name=\"description\" content=\"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog\" \/>\n<meta property=\"og:description\" content=\"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-22T06:39:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-17T09:46:51+00:00\" \/>\n<meta name=\"author\" content=\"Kai Henzler\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kai Henzler\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/\"},\"author\":{\"name\":\"Kai Henzler\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/b9decc610011ed03b2117b5e02032132\"},\"headline\":\"AngularJS Performace durch One-Time-Binding verbessern\",\"datePublished\":\"2015-01-22T06:39:43+00:00\",\"dateModified\":\"2025-04-17T09:46:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/\"},\"wordCount\":623,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/schulungen-tcc_sascha_WP_small.png\",\"keywords\":[\"Angular 1.3\",\"AngularJS\",\"BindOnce\",\"German\",\"JavaScript\",\"One-Time-Binding\",\"Performance\"],\"articleSection\":[\"AngularJS 1\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/\",\"name\":\"AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/schulungen-tcc_sascha_WP_small.png\",\"datePublished\":\"2015-01-22T06:39:43+00:00\",\"dateModified\":\"2025-04-17T09:46:51+00:00\",\"description\":\"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/schulungen-tcc_sascha_WP_small.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/schulungen-tcc_sascha_WP_small.png\",\"width\":720,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/angularjs-performace-durch-one-time-binding-verbessern\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AngularJS Performace durch One-Time-Binding verbessern\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"name\":\"Web Development tips and tricks - theCodeCampus Blog\",\"description\":\"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\",\"name\":\"theCodeCampus\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"width\":156,\"height\":156,\"caption\":\"theCodeCampus\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/b9decc610011ed03b2117b5e02032132\",\"name\":\"Kai Henzler\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/kai-henzler-tcc-author-96x96.webp\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/kai-henzler-tcc-author-96x96.webp\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/kai-henzler-tcc-author-96x96.webp\",\"caption\":\"Kai Henzler\"},\"description\":\"I'm a web developer who is around since the AngularJS days (10+ years). My focus is on teaching others how to write simple and maintainable code.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kai-henzler-58484599\\\/\"],\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/author\\\/khenzler\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog","description":"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/","og_locale":"en_US","og_type":"article","og_title":"AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog","og_description":"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!","og_url":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2015-01-22T06:39:43+00:00","article_modified_time":"2025-04-17T09:46:51+00:00","author":"Kai Henzler","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kai Henzler","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/"},"author":{"name":"Kai Henzler","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/b9decc610011ed03b2117b5e02032132"},"headline":"AngularJS Performace durch One-Time-Binding verbessern","datePublished":"2015-01-22T06:39:43+00:00","dateModified":"2025-04-17T09:46:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/"},"wordCount":623,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_small.png","keywords":["Angular 1.3","AngularJS","BindOnce","German","JavaScript","One-Time-Binding","Performance"],"articleSection":["AngularJS 1"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/","url":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/","name":"AngularJS Performace durch One-Time-Binding verbessern - Web Development Blog","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_small.png","datePublished":"2015-01-22T06:39:43+00:00","dateModified":"2025-04-17T09:46:51+00:00","description":"Optimiere AngularJS Performance mit One-Time Binding! Steigere Effizienz und Geschwindigkeit. Verbessere die Benutzererfahrung jetzt mit Leichtigkeit!","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#primaryimage","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_small.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_sascha_WP_small.png","width":720,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/angularjs-performace-durch-one-time-binding-verbessern\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"AngularJS Performace durch One-Time-Binding verbessern"}]},{"@type":"WebSite","@id":"https:\/\/www.thecodecampus.de\/blog\/#website","url":"https:\/\/www.thecodecampus.de\/blog\/","name":"Web Development tips and tricks - theCodeCampus Blog","description":"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.","publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thecodecampus.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thecodecampus.de\/blog\/#organization","name":"theCodeCampus","url":"https:\/\/www.thecodecampus.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","width":156,"height":156,"caption":"theCodeCampus"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/b9decc610011ed03b2117b5e02032132","name":"Kai Henzler","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/06\/kai-henzler-tcc-author-96x96.webp","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/06\/kai-henzler-tcc-author-96x96.webp","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/06\/kai-henzler-tcc-author-96x96.webp","caption":"Kai Henzler"},"description":"I'm a web developer who is around since the AngularJS days (10+ years). My focus is on teaching others how to write simple and maintainable code.","sameAs":["https:\/\/www.linkedin.com\/in\/kai-henzler-58484599\/"],"url":"https:\/\/www.thecodecampus.de\/blog\/author\/khenzler\/"}]}},"_links":{"self":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/comments?post=178"}],"version-history":[{"count":26,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/178\/revisions"}],"predecessor-version":[{"id":3371,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/178\/revisions\/3371"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}