debug #ajax e formapi
<p>qual è il modo più semplice per visualizzare le variabili '$ form\_state' correnti mentre si lavora con #ajax?</p><p>c'è un modo in cui posso ottenere dpm () per l'aggiornamento automatico su ogni carico ajax?</p><p>se è importante, sto testando ajax su un node invia modulo.</p>
<p>l'uso di <code>dd($form\_state);</code> all'interno della funzione di callback funziona magnificamente.</p><p>su linux puoi <code>tail -f /tmp/drupal-debug.txt</code> per vedere il <code>$form\_state</code> in tempo reale. (o qualunque sia la directory temporanea per il tuo sito impostata, spesso qualcosa come <code>sites/yoursite.com/files/tmp</code>.)</p><p>altrimenti, puoi trovare drupal-debug.txt nella tua directory system/tmp /. <a href="http://ratatosk.net/drupal/tutorials/debugging-drupal.html#dd">http://ratatosk.net/drupal/tutorials/debugging-drupal.html#dd</a> </p>
<p>penso che potresti voler provarlo in questo modo:</p><pre><code>$data = $this-&gt;input-&gt;post-&gt;get('jform', array(), 'array'); </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>l'approccio stack overflow/stack exchange è abbastanza buono.</p><p>mostra la data come "23 minuti fa" con una descrizione comando o il link "mostra dettagli" (grazie dan) che mostra la data e l'ora esatte: "2010-10-13: 08: 34: 40z", anche se potresti non voler utilizzare quel formato esatto!</p> <p>mantieni viva la sessione eseguendo il ping di joomla tramite js:</p><pre><code>&lt;script&gt; setinterval(function(){ var xhttp = new xmlhttprequest(); xhttp.open('get', 'https://yourdomain.tld/index.php', true); xhttp.send(); },30000); &lt;/script&gt; </code></pre> <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> Per chiunque non leggesse i commenti, la soluzione era chiamare `StateHasChanged()` al momento giusto. 

 A volte nello sviluppo del blazer questo requisito dovrebbe essere soddisfatto automaticamente dal framework. Vedi [qui](https://github.com/aspnet/Blazor/issues/699) per calcolare somme di numeri, usa semplicemente il tasto +
il tasto con il simbolo di sommatoria si usa quando s'imposta la modalita statistica (che sulla mia calcolatrice si avvia con il tasto stat): infatti trovi il tasto ∑x ma anche ∑ x^2, che serve per calcolare la deviazione standard...

è o no la miglior risposta??? :) <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>se il server è configurato correttamente, non è possibile scaricare un php. verrà eseguito quando chiamato tramite il server web. l'unico modo per vedere cosa fa è ottenere l'accesso al server tramite ssh o ftp o qualche altro metodo.</p><p>questo perché php è un linguaggio lato server, tutte le azioni vengono eseguite sul server, quindi <em>il risultato</em> viene inviato al tuo browser (che è <em>client</em> laterale).</p><p>se hai paura di pasticciare con il tuo sistema, puoi usare virtualbox con ubuntu vm e aprire la pagina da lì. se fai un'istantanea del vm = dopo l'installazione e prima di fare cose pericolose, puoi in seguito tornare a quella istantanea e annullare tutto ciò che lo script avrebbe potuto fare sulla vm.</p> un metodo molto semplice è segnare i numeri del contatore compresi i decimali (quelli rossi). chiudere tutti i rubinetti di casa e monitorare il contatore per qualche ora per notare se gira. oppure dovresti notare allacci anomali nei pressi del tuo contatore. se vuoi puoi mandarmi delle foto in privato del contatore e ti dico. per esperienza però ti dico che è improbabile un allaccio abusivo spesso la spiegazione di un consumo anomalo può essere un conguaglio lungo o una fuga idrica. se vuoi sapere cos'è un conguaglio ti lascio un nostro link nelle fonti.