2011-06-25 10 views
7

Moja aplikacja internetowa używa document.createEvent i event.initEvent do tworzenia niestandardowych zdarzeń ogólnego typu Event.Czy dobrze jest tworzyć i wysyłać niestandardowe zdarzenia JavaScript?

Zastanawiam się, czy jest to uważane za dobrą praktykę. Z drugiej strony mogę skorzystać z systemu zdarzeń DOM, który już istnieje i nie muszę wymyślać i realizować własnego; z drugiej strony może to prowadzić do konfliktów nazw w przypadku, gdyby przyszłe ustandaryzowane modele zdarzeń definiowały typ zdarzenia o wybranej przeze mnie nazwie. (Czy jest to możliwe do typów zdarzeń przestrzeni nazw?)

Pytam, ponieważ właśnie dowiedziałem się, przeglądając stackoverflow, że wprowadzenie niestandardowych właściwości obiektów DOM lub wbudowanych obiektów JavaScript jest uważane za złe praktyki.

EDIT Chyba znalazłem coś: http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-CustomEvent

Więc pozwól mi przeformułować moje pytanie: Czy jestem poprawnie zrozumieniem cytowany punkt w który zaleca się faktycznie użyć CustomEvent wewnątrz aplikacji sieci web?

DODATEK UWAGA Właśnie zauważyłem, że CustomEvent nie jest obsługiwana w wersjach Firefoksa przed 6. To jest obsługiwana w obecnych przeglądarek opartych na silniku WebKit, choć.

+0

Masz na myśli, jakie są pułapki lub najbardziej odpowiedni sposób tworzenia niestandardowych wydarzeń? Ponieważ myślę, że wykorzystanie własnych wydarzeń byłoby specyficzne dla projektu. –

+0

Tak, będą one zależne od projektu, ale podstawowy kod może zostać ponownie użyty później. Nie chcę więc zaimplementować czegoś, co nie jest mile widziane, co sprawiło, że zastanawiałem się, czy powinienem w ogóle włączyć się do modelu zdarzenia DOM. – Marc

Odpowiedz

3

Jeśli masz zamiar stworzyć coś i uczynić go jak najbardziej odpornym na działanie przestrzeni nazw, możesz zrobić to, co robią Webkit i Mozilla i dodać nazwę-monikera na początku wszystkich nazw wydarzeń. Na przykład:

_marc_trap_door_shut 
_marc_trap_door_open 
_marc_trap_door_ajar 
... etc ... 
Powiązane problemy