Tag: JavaScript

Symfony: Instruct browser to refresh CSS and JS files

In Symfony the stylesheets and javascript files are defined in the view.yml. Sometimes the problem appears that the browsers cache these files, even if there where some changes in the last release without refreshing the new contents.

There is a common technique to instruct the browser to take the new file version: Browsers store different file versions for different GET paramters. So if you include a CSS file like this:

<script type="text/javascript" src="css/styles.css?v=21"></script>

and in the next version with a higher version number (v=22), the browser will use  (and cache) the newer version.

In our case we save the current version number (SVN) into the app.yml and we use this number as increasing GET-Parameter to force a cache refresh:

default:
  stylesheets: [styles.css?v=<?php echo sfConfig::get('app_revision'); ?>]

WordPress: jQuery is not defined

Nach dem Update auf die neue WordPress Version 2.5.1 hatte ich das Problem, dass die meisten Funktionen, die Javascript benötigen nicht richtig funktionierten. Wie z.B. die aufklappbaren Einstellungsmöglichkeiten beim Erstellen eines neuen Eintrags. Firebug zeigte mir folgenden Fehler:

jQuery is not defined

In Foren oder dergleichen habe ich keine Lösung gefunden zu dem Problem gefunden obwohl der Fehler nicht nur bei mir auftauchte. Dann fiel mir ein, dass der Upload nicht ganz reibungslos verlief und so habe ich alle neuen WordPress-Dateien nochmals auf den Server geladen. Und siehe da, nun geht alles wieder.


JavaScript: unterminated string literal

Was hab ich mich damit rum geschlagen und kein einziges Suchergebnis bei g* konnte mir die Lösung bieten.
Kurz zum Problem. Ich lese mit PHP Text aus einer MySQL-Datenbank, welcher auch Zeilenumbrüche enthalten kann.
Diese Zeilenumbrüche werden mit

\n

oder

\r\n

codiert. Ich weiß, dass in JS Zeilenumbrüche in Strings verboten sind und wollte diese nun ersetzten. Dafür gibt es mich folgende Möglichkeiten:

nl2br brachte nichts und kann in der Ausführung auch nicht wirklich beeinflusst werden. Ok dann mit str_replace oder preg_replace.
Was ich versucht habe war nun folgendes:

$str = str_replace('\r\n','
',$str);
$str = str_replace('\r','
',$str);
$str = str_replace('\n','
',$str);

Nichts hat geholfen, der Fehler war noch da und der Umbruch war sogar noch im Quellcode zu sehen.
Dann fiehl mir Gott sei Dank ein, dass PHP einen Unterschied macht ob man SingleQuotes (‘) oder DoubleQuotes (“) benutzt. Code in SingleQuotes wird bspw. nicht nach PHP-Variablen geparst. Also versuchte ich es mal so:

$str = str_replace("\r\n","
",$str);

Und siehe da, die Sonderzeichen wurden wie gewünscht ersetzt und der JavaScript-Fehler unterminated string literal war verschwunden. Bitte. Danke.


Copyright © 2007-2012 iTopia. All rights reserved.
Jarrah theme by Templates Next | Powered by WordPress