From 4033c3864003c39dad4fd359e20c24fcb11ec863 Mon Sep 17 00:00:00 2001 From: robin Date: Mon, 1 Jan 2024 15:46:18 +0000 Subject: [PATCH] probleme --- docs/md/probleme.md | 39 ++++++++++++++++++++++++++++++ docs/md/projektkonfig/dashboard.md | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 docs/md/probleme.md diff --git a/docs/md/probleme.md b/docs/md/probleme.md new file mode 100644 index 0000000..6dab964 --- /dev/null +++ b/docs/md/probleme.md @@ -0,0 +1,39 @@ +# Bekannte Probleme im Entwicklungsprozess mit TibiCMS + +In diesem Abschnitt werden bekannte Probleme während des Entwicklungsprozesses mit TibiCMS beschrieben und Lösungsansätze aufgezeigt. Sollten ein Problem auftauchen, welches hier nicht beschrieben ist, ist es gerne gesehen, wenn dieses Problem hier dokumentiert wird. + +## Probleme mit CollectionEntry Objekten + +### Problemstellung + +Wenn ein Objekt vom Typ CollectionEntry zurückgegeben wird, zeigt sich teilweise eine eingeschränkte Kompatibilität mit JavaScript. Beispielsweise funktioniert die push-Methode nicht bei Attributen, die einen Array-Datentyp speichern. + +### Ursache + +Die Problematik entsteht durch die Übersetzung des Objekts von Go nach JavaScript. Hierbei werden die Attribute nicht als native JavaScript-Objekte, sondern als Go-Objekte übersetzt, was zu einer eingeschränkten Kompatibilität führt. Insbesondere unterstützen sie nicht gängige Methoden wie push, pop etc. Ein weiteres Problem ist, dass bei diesen Inkompatibilitäten _keine Fehlermeldungen generiert_ werden, sondern schlichtweg _keine Aktion_ erfolgt. + +### Lösungsansatz + +Beim Manipulieren von CollectionEntry-Objekten innerhalb eines Hooks sollte man zur Sicherheit eine tiefe Kopie (Deep Copy) des Objekts erstellen, um es vollständig in ein JavaScript-Objekt zu konvertieren. Die Verwendung von {...} reicht hierbei nicht aus, da dies nur die oberste Ebene des Objekts konvertiert. JSON.stringify und JSON.parse sind nur dann zu empfehlen, wenn die Reihenfolge der Attribute irrelevant ist. Für Fälle, in denen die Reihenfolge wichtig ist, existiert bereits eine spezielle Funktion, die dies beibehält. Diese Funktion ist unter dem Namen „obj2str“ in der Utils-Datei zu finden. + +### Warum die Ursache nicht behoben wurde + +Die Ursache wurde nicht behoben, da die Standardmäßige, uneingeschränkte übersetzung von Go zu JS einen performancemäßigen totalschaden darstellt. + +## Probleme mit SSR kompilierung + +### Problemstellung + +Website wird nur teilweise oder gar nicht gerendert. + +### Ursache + +In meinem Fall war das Problem, dass ein Button element in einem anderen Button Element enthalten war. Dies hat dazu geführt, dass der Compiler manchmal die Vollständige Seite nicht gerendert hat, manchmal auch nur vereinzelte Elemente. + +### Lösungsansatz + +Semantisch arbeiten. + +### Warum die Ursache nicht behoben wurde + +In dem fall liegt der Programmcode fehler nicht bei uns, da die Kompillierung von svelte übernommen wird. diff --git a/docs/md/projektkonfig/dashboard.md b/docs/md/projektkonfig/dashboard.md index 42d7c6d..1266840 100644 --- a/docs/md/projektkonfig/dashboard.md +++ b/docs/md/projektkonfig/dashboard.md @@ -508,4 +508,4 @@ dashboard: newPageRef: false ``` -![Resultierende Dashboard](dashboard.png) +![Resultierende Dashboard](./dashboard.png)