Autor Zpráva
joseff
Profil
Jednoduchá stránka se postupem času rozrostla. Aby byla pro úpravy přehlednější, tak každá složitější část je ve vlastním souboru. Při naběhnutí stránky se to všechno načte, ale jak již toho je moc, tak to jenom
zpomaluje náběh stránky a většina uživatelů itak použije jenom pár věcí a to ostatní jenom občas.
Jedním z řešení by sice bylo to otevírat v nové HTML stránce, ale já potřebuji, aby to bylo pouze na jedné stránce.
Má stránka zjednodušeně vypadá takto:

<html>
    <head>
        <STYLE type=text/css> 
        
</style>
        <script language="JavaScript" src="KeyCodes.js" type="text/javascript"></script>
        <script language="Javascript">         
.
. 
.
hodně kódu
.
.
.
</script>

<script language="JavaScript" src="langs.js" type="text/javascript"></script>
<script language="JavaScript" src="a1.js" type="text/javascript"></script>
<script language="JavaScript" src="a2.js" type="text/javascript"></script>
<script language="JavaScript" src="a3.js" type="text/javascript"></script>
<script language="JavaScript" src="a4.js" type="text/javascript"></script>
<script language="JavaScript" src="b1.js" type="text/javascript"></script>
<script language="JavaScript" src="b2.js" type="text/javascript"></script>
<script language="JavaScript" src="b3.js" type="text/javascript"></script>
<script language="JavaScript" src="b4.js" type="text/javascript"></script>
<script language="JavaScript" src="c1.js" type="text/javascript"></script>
<script language="JavaScript" src="c2.js" type="text/javascript"></script>
<script language="JavaScript" src="c3.js" type="text/javascript"></script>
<script language="JavaScript" src="c4.js" type="text/javascript"></script>

</head>
    <body id="Body" bgcolor="#003333" onLoad="setTimeout('init()',100);" style="position: absolute; background-position: 60px 40px; background-repeat: no-repeat;">
        <table width="720px" cellpadding="0" cellspacing="0" style="table-layout: fixed; background-position: 186px 150px; background-image: url(fondo_mensaje.png); background-repeat: no-repeat; font-weight: bold;">
            <tr height="130px"><td width="720px"/></tr>
            <tr height="330px"><td width="720px" align="center" class="font25" id="xclk"></td></tr>
            
        </table>
    </body>
</html> 

No a já potřebuji ty .js soubory načíst teprve, když budou potřeba.
Takže do části, kde je hodně kódu do jedné z funkcí nějak přidat instrukci, aby to dodatečně načetlo třeba soubor b4.js
Omlouvám se, že otravuji s takovou jednoduchou blbostí.
quatzael
Profil
joseff:
Já bych to vyřešil nějak pragmaticky tím, že bych jednoduše do toho kódu vložil celej tag se skriptem, ale nevím jestli to bude fungovat..

$("#script-list").append('<script language="JavaScript" src="a1.js" type="text/javascript"></script>');
joseff
Profil
Není to spíše vhodné pro PHP, pokud to začíná $
Já to bohužel potřebuji na jednoduchou HTML stránku, ale nějak takto to potřebuji.
Kubo2
Profil
joseff:
V js $-om väčšinou začína volanie jQuery objektu.
Str4wberry
Profil
Vážně je toho JavaScriptu tolik, aby mělo důvod ho dělit? Kolik kB má?

Jinak pro připojení JS souboru přes JS stačí jednoduchá funkce.
aDAm
Profil
A to se ten JS hned nějak inicializuje? Nechtělo by to spíš pořešit správnou práci pomocí toho js?
joseff
Profil
Porfetkní. Moc děkuji za odkaz, doklikal jsem se k tomu, co jsem potřeboval.
Funguje mi toto:

function zapni_b4() {                  
 var element = document.createElement("script"); 
 element.language = "JavaScript";
 element.type = "text/javascript"; 
 element.src = "b4.js"; 
 document.body.appendChild(element);     
 }

Jen si to ještě upravím, aby ta jedna funkce sloužila na všechny soubory.
A ještě nějak musím udělat kontrolu, zda již není soubor načtený, aby ho to znovu nenačetlo.

Ona ta stránka není určena pro běžný počítač, ale spíš pro takové speciální zařízení, které umí
zobrazit a používat jenom jednu HTML stránku.
A ano, na začátku to vždy načetlo kompletně všechno a tím to dost zpomalilo, takto se to zrychlí.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0