Sono piuttosto nuovo nel nostro team di sviluppatori.
Ho bisogno di alcuni argomenti forti e / o esempi di "trappola", quindi il mio capo capirà finalmente i vantaggi di JavaScript non intrusivo, in modo che lui e il resto della squadra smettano di fare cose del genere:
<input type="button" class="bow-chicka-wow-wow"
onclick="send_some_ajax(); return false;" value="click me..." />
e
<script type="text/javascript">
function send_some_ajax()
{
// bunch of code ... BUT using jQuery !!!
}
</script>
Ho suggerito di utilizzare uno schema piuttosto comune:
<button id="ajaxer" type="button">click me...</button>
e
<script type="text/javascript">
// since #ajaxer is also delivered via ajax, I bind events to document
// -> not the best practice but it's not the point....
$(document).on('click', '#ajaxer', function(ev) {
var $elem = $(this);
ev.preventDefault();
});
Il motivo per cui il mio capo (e altri) non vogliono usare questo approccio è che l'Event-Inspection in FireBug (o Chrome Dev Tools) non è più semplice, ad es. con
<input type="text" name="somename" id="someid" onchange="performChange()">
può immediatamente vedere quale funzione viene eseguita su change-event e saltare direttamente ad essa in un enorme file JS pieno di spaghetti code .
Nel caso di JavaScript non invadente l'unica cosa che vedrebbe è:
<input type="text" name="somename" id="someid" />
e non ha idea se alcuni eventi, se ce ne sono, sono stati associati a questo elemento e quale funzione verrà attivata.
Stavo cercando una soluzione e l'ho trovata:
$(document).data('events') // or .. $(document).data('events').click
ma, questo "approccio" ha fatto sì che prendesse "troppo tempo ..." per scoprire quale funzione si attiva su quale evento, quindi mi è stato detto di smettere di associare eventi del genere.
Ti sto chiedendo alcuni esempi o forti vantaggi o altri tipi di suggerimenti per "Perché dovremmo usare UJS"
UPDATE: il suggerimento di "cambiare lavoro" non è una soluzione ideale.
UPDATE 2: Ok, Non ho solo suggerito di utilizzare l'associazione eventi jQuery, L'ho fatto . Dopo aver scritto tutto Event-Delegation, il Boss è venuto da me e mi ha chiesto, perché sto facendo delegazione di eventi con approccio e approccio diversi che non conosce
Ho menzionato alcuni ovvi benefici, come: - Ci sono 15 campi di input e tutti quindi hanno un evento onchange
(non solo, alcuni di loro hanno anche onkeyup
) Quindi è più pragmatico scrivere questo tipo di evento -delegazione per TUTTI i campi di input, invece di farlo 15 volte, specialmente se tutto il codice HTML sarà reso con PHP echo - > echo '... <input type="text" id="someid" ... />...'