Wiem, że nie ma jeszcze określonych wzorów dla Javascript. Ale myślę, że istnieje potencjał dla czegoś podobnego do widżetów (komponent). Ponieważ głównie używamy javascript do wzmocnienia naszego kodu html. Logiczne jest, że powinniśmy połączyć nasz każdy obiekt javascript z tagiem html. Mamy tutaj coś takiego jak Model (jsObject) + Widok (HTMLreprezentacja). Aby uzyskać MVC potrzebujemy kontrolerów i mamy dla tego Wydarzenia. W takim przypadku będziemy mieli łatwo skondensowane komponenty extensibel.
na przykład:
// this is a part of some FormValid.js
<script>
function FormValid(){
}
FormValid.prototype.validate=function(){...}
</script>
//this is our HTML
<form id="form1"...onsubmit="this.jsObject.validate();">
</form>
<script>
//all the following stuff could be solved in one line, but you need to create some helper. Like Components.Attach("FormValid").to("form1");
var newObj=new FormValid()
var form=document.getElementById("form1");
from.jsObject=newObj;
newObj.htmlObj=form;
</script>
też mam pomysł wykorzystania silników szablonów jak Zparser oddzielić widok i model. W tym celu tworzę bibliotekę js, więc teraz jestem w tej kwestii.
Mamy obiekt podstawowy z metodą , zobacz. Wszystkie nasze klasy mają go jak prototyp na końcu. Ta metoda pobiera właściwość klasy szablony i za pomocą niektórych parser szablony generuje HTML na podstawie naszego modelu. Ten kod HTML jest wstawiany do węzła htmlObj, więc WIDOK naszego obiektu jest aktualizowany. Jest to po prostu pomysł, a nasz kod staje:
// this is a part of some FormValid.js
<script>
function FormValid(){
}
Components.extendCore(FormValid);
FormValid.prototype.validate=function(){...}
</script>
FormValid.prototype.templates={
main:'<form class="form1"...onsubmit="this.jsObject.validate();">...</form>'
}
//this is our HTML
<div id="form1"></div>
<script>
Components.Attach("FormValid").to("form1");
</script>
nadal uważam ostatni inline <script>
powinny być tam i to nie jest mieszanie logiki z reprezentacji, ponieważ jest to składnik - kawałka. Nie ma znaczenia bez siebie. W rzeczywistości powinno to być częścią aplikacji. Coś w rodzaju html komponentu (w jednym przykładzie to div) powinno być zdefiniowane i opakowane w komponent, który automatycznie doda skrypt i identyfikatory.
Teraz. Pokazałem wam 2 przykłady i wyjaśnię, dlaczego drugi jest zbyt szczegółowy.
Wszystko jest w zakresie dostępności i wydajności (oraz wycieków pamięci). Jeśli odświeżysz wszystkie html komponentu - zacznie migać, będziesz musiał również skonfigurować wszystkie zdarzenia dynamiczne i sprawdzić wszystko pod kątem wycieków pamięci. Ale główny problem, jeśli JS się nie powiedzie - twoja aplikacja nic nie wskaże.
Więc wolę mieć wybór między tymi dwoma :) i używać wszystkiego na swoich miejscach.
Nie ma powodu, dla którego MV [C | P] nie miałby zastosowania - jego ładny język niezależny. – Chii