[Coffee] [PATCH mt-apps v4] Added list of scripts

Michal Sojka michal.sojka at cvut.cz
Thu Sep 6 09:55:16 CEST 2018


On Thu, Sep 06 2018, Tomas Prochazka wrote:
> This scripts are needed to create Dialog window with calendar

Když tak o tom přemýšlím, tak načítání těchto skriptů se nemusí dělat
z mt-apps, ale stačilo by to z main.js v coffee-flask. V mt-apps zůstane jen
načítání main.js (http://localhost:5000/js). Tím se celá funkcionalita
kalendáře zjednoduší, protože vše bude jen v jednom repozitáři.

Nech to jako jako samostatný patch, ale v coffee-flask repu.

> ---
>  html/index.html | 27 ++++++++++++++++++++-------
>  1 file changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/html/index.html b/html/index.html
> index 06f8fbf..db039db 100644
> --- a/html/index.html
> +++ b/html/index.html
> @@ -5,13 +5,26 @@
>  <title>IID Coffee Terminal</title>
>  <script>
>      function loadServerScript() {
> -        let script = document.createElement('script');
> -        script.src = "http://localhost:5000/js";
> -        document.head.append(script);
> -        script.onerror = function() {
> -            this.parentElement.removeChild(this);
> -            setTimeout(loadServerScript, 10000);
> -        };
> +        <!--name of script, which I need -->
> +        var scriptName= ["js",
> +        "bower_components/moment/min/moment.min.js",
> +        "bower_components/jquery/dist/jquery.min.js",
> +        "bower_components/bootstrap/dist/js/bootstrap.min.js",
> +        "bower_components/bootstrap3-dialog/dist/js/bootstrap-dialog.min.js",
> +        "bower_components/fullcalendar/dist/fullcalendar.min.js"];
> +        for(var i=0;i<scriptName.length;i++){
> +            const scriptPromise = new Promise((resolve, reject) => {
> +                const script = document.createElement('script');
> +                document.head.appendChild(script);

Z původního kódy jsi vyhodil removeChild v případě neúspěchu. To tam
bylo kvůli tomu, že když server není k dispozici, tak by se pořád
přidávaly nové elementy a pokud nebude server dostupný dlouho, může díky
tomu třeba dojít paměť, nebo bude výsledná stránka mnohem pomalejší,
protože bude obsahovat tisíce elementů "script".

> +                script.onload = resolve;
> +                script.onerror = () => {
> +                    setTimeout(loadServerScript, 10000);
> +                    reject;
> +                };
> +                script.async = false;

Není to default?

> +                script.src = "http://localhost:5000/"+scriptName[i];

Neměl by se .src nastavit před tím, než se zavolá appendChild? Nevím,
jestli je při opačném pořadí garantováno, že se skript načte.

> +            });
> +        }
>      }
>  
>      loadServerScript();
> -- 
> 2.11.0
>
>
> _______________________________________________
> Coffee mailing list
> Coffee at rtime.felk.cvut.cz
> https://rtime.felk.cvut.cz/mailman/listinfo/coffee



More information about the Coffee mailing list