2015. szeptember 14.

Third-party JS

10 perc olvasási idő

Third-party JS

Gyakran van arra szükség, hogy third-party alkalmazásokat integrálj az oldaladba. Remarketing, mindenféle analitika, különböző mérések, adserverek kódjai stb. Hasznos eszközök ezek és óriási szükség van rájuk, viszont már nem először futunk problémába. Most éppen egy remarketing kód okozott galibát.

Történetesen ugyanazt a JavaScript változót használja a befűzött harmadik féltől származó JS kód, mint amit maga a web site is. A kódot behúzva a site fontos funkciói nem működnek. Azt gondoljuk, hogy a third-party JS-ek fejlesztőinek kell felkészülnie erre a lehetőségre, azaz nekik kell olyan kódot írni, ami biztosan nem fog ütközni a befogadó oldalak kódjával. De hogyan lehet ezt elérni?

A probléma egyébként abból fakad, hogy mindkét fél nagyon helyesen minimalizálja a JS kódját (minify). A minify-oló eszközök pedig lecserélik a változók neveit a lehető legrövidebbekre úgy mint a, b, c, d… Ha a minify mindkét oldalon megtörténik, elő is áll(hat) az ütközés a nem várt eredményekkel. Még egyszer: a third-party fejlesztőinek kell ezzel kezdeniük valamit. Két lehetőség van az ütközések elkerülésére.

Hosszabb, beszédes és egyedi változó nevek használata.

Például:


var google_conversion_id = 978986647;

Igen nagyobb méretű lesz a JavaScript, de legalább nem lesz ütközés.

Objektumba foglalja a kódját.

Pont úgy, mint ahogy például a Google teszi. Azzal, hogy minden funkció és változó egy objektumon keresztül érhető el, tulajdonképpen egy névteret hoz létre, ezzel jócskán csökkentve a más kóddal történő összeakadás esélyét.


var namespace = {
       func: function() { … },
       value: 123
   };
namespace.func();

Ez a poszt egy kérés, hogy egyszerűbb legyen mindenki élete. Szándékosan nem írtuk a szolgáltatást, ami a gikszert okozta és ne is kérdezd. Kommentben írjátok meg, ha már volt hasonló kellemetlenségetek!

Tóth Zoltán

Vezető fejlesztő. Közel tíz éve foglalkozik webfejlesztéssel, igyekszik egyaránt backend és frontend területen is képben lenni. WordPresspárti, böngészőkiegészítő- és bookmarkletgyűjtő.

Tóth Zoltán

Hozzászólások