è meglio mettere l'azione nell'href o in un evento onclick?
<p>dal punto di vista dell'usabilità:<br> nella maggior parte dei siti web è possibile vedere un collegamento che esegue un'azione come il collegamento "elimina" che elimina un record, ad esempio "aggiungi commento", "vota", ....</p><p>è meglio inserire l'azione javascript nell'attributo href del tag html anchor:</p><pre><code>&lt;a href="javascript:removeme(132);"&gt; remove&lt;/a&gt; </code></pre><p>o fallo in un evento:</p><pre><code>&lt;a href="#" onlcick="removeme(132)"&gt; remove&lt;/a&gt; </code></pre><p>la differenza tra questi 2 modi, è come l'utente vedrà il link nella sua barra di stato del browser.<br> nel primo modo l'utente vedrà nella barra di stato: <em>javascript: removeme (132);</em></p><p>ma nel secondo modo l'utente vedrà nella barra di stato: <em>www.example.com/pagesample/#</em></p><p>qual è la migliore dal punto di vista dell'usabilità? qual è il comune da usare?</p>
<p>è meglio inserire il link di rimozione al <code>href</code> e al gestore javascript nel <code>onclick</code>.</p><pre><code>&lt;a href="/123/remove/" onclick="removeme(132); return false"&gt;remove&lt;/a&gt; </code></pre><p>in questo modo gli utenti senza javascript potranno comunque utilizzare la tua app (ma con un reindirizzamento a un'altra pagina) e coloro che hanno abilitato javascript useranno la versione javascript. entrambi vedranno un link significativo nella barra di stato.</p><p>se l'azione è significativa solo in questa pagina (mostra/nascondi smth, carica più dati, ad esempio), non dovresti usare <code>&lt;a&gt;</code> tag qui. usa stile <code>&lt;span&gt;</code> con sottolineatura tratteggiata, ad esempio.</p><p>in entrambi i casi, è anche utile scrivere un attributo <code>title</code> sul tuo link che spieghi cosa accadrà (verrà mostrato nella descrizione comando), per gli utenti che non usano le barre di stato.</p>
<p>con<em> inline </em>script come quello che hai citato, è improbabile che ci sia<em> much </em>difference; tuttavia, ogni volta che il parser html del browser incontra un tag <code>script</code>, questo:</p><ul> <li>arresta bruscamente</li> <li>crea una stringa del testo nel tag fino alla prima volta che vede la stringa <code>"&lt;/script&gt;"</code></li> <li>passa il testo all'interprete javascript, ascoltando l'output che l'interprete invia quando si esegue un <code>document.write</code></li> <li>aspetta che l'interprete finisca</li> <li>inserisce l'output accumulato ricevuto nel flusso di analisi</li> <li>continua la sua analisi</li> </ul><p>quindi aumentare il numero di volte che questa sequenza deve verificarsi può, in teoria, aumentare il tempo di caricamento della pagina. influisce anche sul grado in cui il parser può &quot;guardare avanti&quot; nel flusso di token, il che potrebbe renderlo meno efficiente.</p><p>tutto ciò sembra davvero drammatico, ma dovresti profilare una pagina reale nei vari browser che ti interessano per determinare se ha avuto un impatto reale.</p><p>quindi, in sintesi, combinale il più possibile. se non riesci a combinare ragionevolmente una coppia, non preoccuparti troppo fino a quando non vedi un problema del mondo reale.</p><p>quanto sopra è per script in linea. naturalmente, se si hanno diversi tag <code>script</code> che si riferiscono a una serie di file javascript esterni, si avrà anche il problema che ciascuno di questi file deve essere scaricato, e l'avvio di una richiesta http è una cosa costosa (comparativamente) e quindi è meglio , in grande stile, per combinarli in un unico file.</p><p>alcune altre cose da considerare:</p><ul> <li>avere molti tag <code>script</code> sparsi nel tuo codice html può rendere difficile la manutenzione dello script</li> <li>separare il tuo codice html e lo script in file separati ti aiuta a limitare il livello di accoppiamento, aiutando di nuovo la manutenzione</li> <li>mettendo lo script in un file separato, è possibile eseguire quel file tramite minifiers/compressors/packer, riducendo al minimo le dimensioni del codice e rimuovendo commenti, lasciandoti libero di commentare nel codice sorgente sapendo che quei commenti saranno privati</li> <li>mettere gli script in file esterni ti dà l'opportunità di mantenere le cose separate dalla funzionalità, e quindi combinarle in un unico file per la pagina (compresso/minificato/impacchettato) per una consegna efficiente al browser</li> </ul><p>di più:</p><ul> <li> <a href="http://developer.yahoo.com/performance/rules.html">le &quot;migliori pratiche per accelerare il tuo sito web&quot; di yui</a> </li> <li> <a href="http://code.google.com/speed/page-speed/docs/rules\_intro.html">&quot;best practice per le prestazioni web&quot; di google</a> </li> </ul> <p>hai due modi per farlo:</p><ul> <li><p>utilizzando javascript: </p> <p><code>&lt;tr onclick="document.location = 'links.html';"&gt;</code></p></li> <li><p>usando le ancore:</p> <p><code>&lt;tr&gt;&lt;td&gt;&lt;a href=""&gt;text&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=""&gt;text&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;</code></p></li> </ul><p>ho fatto il secondo lavoro usando:</p><pre><code>table tr td a { display:block; height:100%; width:100%; } </code></pre><p>per sbarazzarsi dello spazio morto tra le colonne:</p><pre><code>table tr td { padding-left: 0; padding-right: 0; } </code></pre><p>ecco una semplice demo del secondo esempio: <a href="http://jsfiddle.net/bf729/"><strong>demo</strong></a> </p> <p>la cosa principale che vorrei ricordare al momento è che se le tue pagine si basano su meta-tag, vorrai testare e monitorare regolarmente la loro accettazione. ad esempio, per strumenti per i webmaster di google, se si desidera verificare la proprietà tramite meta-tag, è necessario posizionarlo in un elemento "head" (esistono altri modi per verificare la proprietà, quindi generalmente non è un problema, ma se devi fare affidamento sulla verifica basata su metatag, quindi è qualcosa da tenere a mente). lo stesso può valere per altri meta-tag come il meta-tag "robot" per controllare l'indicizzazione delle tue pagine: poiché l'accettazione al di fuori di una sezione "head" può variare da motore di ricerca a motore di ricerca, è una cosa che consiglierei di monitorare regolarmente (o forse è solo più semplice usare una sezione "testa" tradizionale per il momento se è necessario essere assolutamente certi).</p><p>per il resto, come altri hanno già detto, non darei per scontato che al momento sarebbe trattato in modo speciale. queste cose sono ancora in evoluzione ... una volta che si sono stabilizzate e si è scoperto che trattarle in modo diverso migliora significativamente la capacità di comprendere il contenuto di una pagina, quindi potresti iniziare a vedere cambiamenti nella gestione di quegli elementi.</p> Hai ragione, la versione corrente di Blazor non supporta l'evento onblur. Sono supportati solo gli eventi onclick, onchange e onkeypress. Credo che [questa richiesta di pull](https://github.com/aspnet/Blazor/pull/498) dovrebbe consentire l'accesso a più eventi e dovrebbe essere nella versione 0.2.0. 

 È possibile chiamare i metodi C # da JavaScript se si desidera seguire questa rotta. Vedi [questo post sul blog](https://codedaze.io/blazor-bites-javascript-interop/) per un esempio. Ma potrebbe valere la pena aspettare la versione 0.2.0 come dovrebbe essere fuori nella prossima settimana. <p>se hai xdocument è più facile usare linq-to-xml:</p><pre><code>var document = xdocument.load(filename); var name = document.descendants(xname.get("name", @"http://demo.com/2011/demo-schema")).first().value; </code></pre><p>se sei sicuro che xpath sia l'unica soluzione di cui hai bisogno:</p><pre><code>using system.xml.xpath; var document = xdocument.load(filename); var namespacemanager = new xmlnamespacemanager(new nametable()); namespacemanager.addnamespace("empty", "http://demo.com/2011/demo-schema"); var name = document.xpathselectelement("/empty:report/empty:reportinfo/empty:name", namespacemanager).value; </code></pre> <p>questo è un modo per eseguirlo come previsto:</p><p>il <code>view.raw.php</code> sarebbe qualcosa del genere:</p><pre><code>&lt;?php defined( '\_jexec' ) or die; class yourcomponentviewyourview extends jviewlegacy // or jview depends on j! version { public function display($tpl = 'raw') { parent::display($tpl); } } </code></pre><p>il file <code>default\_raw.php</code> nella cartella <code>tmpl</code> sarebbe simile al seguente:</p><pre><code>&lt;?php defined( '\_jexec' ) or die; $url = juri::base(); $ch = curl\_init($url); curl\_setopt($ch,curlopt\_returntransfer, true); curl\_setopt($ch,curlopt\_followlocation, true); $contents = curl\_exec($ch); curl\_close($ch); $dom = new domdocument(); libxml\_use\_internal\_errors(true); $dom-&gt;loadhtml($contents); libxml\_use\_internal\_errors(false); $xpath = new domxpath($dom); $head = $xpath-&gt;query('/html/head')-&gt;item(0); $head = $dom-&gt;savehtml($head); echo '&lt;html&gt;' . $head . '&lt;body&gt;blah blah&lt;/body&gt;&lt;/html&gt;' </code></pre> <p>per rispondere alla domanda nel titolo "impostazione" del limite, questo viene fatto nella configurazione globale di joomla: "limite elenco predefinito".</p><p>per sovrascrivere, i componenti di joomla sembrano generalmente usarlo nel modello: usando <code>$limit = 0</code> mostra tutti gli elementi</p><pre><code>protected function populatestate($ordering = null, $direction = null) { // set limit $this-&gt;setstate('list.limit', $limit); // set start (eg. what record to begin pagination at) $this-&gt;setstate('list.start', $value); } </code></pre> <p>spesso, una condizione if lunga è il segno di codice che necessita di refactoring, ma a volte non è possibile evitarlo. in questi casi, preferisco il primo:</p><pre><code>if (bar || baz || quux) { ... } </code></pre><p>perché sei in grado di dire cosa sta succedendo con una riga. tuttavia, preferirei fare qualcosa del genere, quando possibile:</p><pre><code>function foo() { return bar || baz || quux; } if (foo()) { ... } </code></pre> molti ti diranno google chrome! ma io uso opera con una sincronizzazione non ho problemi in answers o ai giochi di facebook! con google chrome o mozzilla fire fox su facebook per i giochi chiede sempre di avviare flash player su opera lo stesso ma puoi mettere l'opzione di non chiederlo e avviarlo automaticamente e fatta la sincronizzazione non te lo chiede quando giochi su facebook! non si può fare in html, dovrai impararti il php come minimo (codice che io consiglio vivamente).