Jump to content
Robson Augusto

Como transformar essa função em assíncrona

Recommended Posts

Boa noite galera, não tenho conhecimento em programação, o que desenvolvi em meu site atualmente foi através de pesquisas e curiosidade em aprender e modelar site por conta própria.

Hoje estou com um problema quanto a velocidade do site, muitas JS bloqueando a renderização do site, eu cheguei a tentar jogar todo JS para fim da página "footer", mas algumas páginas se desconfigurarão, então eu gostaria de pedir ajuda a vocês, sobre como eu deixo meu site mais rápido sem desconfigurar as páginas... Ou como adicionar o async dentro dessas funções!?

Segue o php de chamadas do css e js

 

<?php

class CaryAssets
{

    var $location;
    var $section;

    public function __construct()
    {
        $this->location = Rewrite::newInstance()->get_location();
        $this->section = Rewrite::newInstance()->get_section();

        osc_add_hook('header', array(&$this, 'enqueue_css'), 1);
        osc_add_hook('header', array(&$this, 'enqueue_js'));

    }


    function enqueue_css()
    {
        $location = Rewrite::newInstance()->get_location();
        $section = Rewrite::newInstance()->get_section();

        if ($location === 'user' && in_array($section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items'))) {
            $user = User::newInstance()->findByPrimaryKey(Session::newInstance()->_get('userId'));
            View::newInstance()->_exportVariableToView('user', $user);
            ?>
            <script type="text/javascript">
                var cary_theme = window.cary_theme || {};
                cary_theme.user = {};
                cary_theme.user.id = '<?php echo osc_user_id(); ?>';
                cary_theme.user.secret = '<?php echo osc_user_field("s_secret"); ?>';
            </script>
            <?php
        }
        // osc_enqueue_style('bootstrap', osc_current_web_theme_url() . 'lib/bootstrap/css/bootstrap.min.css');
        // customized bootstrap with 480px @media
        // https://gist.github.com/wdollar/135ec3c80faaf5a821b0
        osc_enqueue_style('bootstrap', osc_current_web_theme_url() . 'css/bootstrap.min.css');


        osc_enqueue_style('font-awesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css');
        osc_enqueue_style('bootstrap-social', osc_current_web_theme_url() . 'css/bootstrap-social.css');

        osc_enqueue_style('bxslider-css', osc_current_web_theme_url() . 'lib/bxslider/css/jquery.bxslider.min.css');
        osc_enqueue_style('sweetalert-css', osc_current_web_theme_url() . 'js/sweetalert-master/dist/sweetalert.css');
        osc_enqueue_style('style', osc_current_web_theme_url() . 'css/style.css');

        osc_enqueue_style('style-jquery-ui', osc_current_web_theme_url() . 'lib/jquery-ui/jquery-ui.css');
        osc_enqueue_style('style-animatedModal', '//cdnjs.cloudflare.com/ajax/libs/animate.css/3.2.0/animate.min.css');
        if(Params::getParam('page') === 'item' &&
            (Params::getParam('action')==='item_add' || Params::getParam('action')==='item_edit')) {
            osc_enqueue_style('style-jquery-ui', osc_current_web_theme_url() . 'js/alt-checkbox/jquery.alt-checkbox.css');
        }
    }

    function enqueue_js()
    {
        osc_register_script('jquery', osc_current_web_theme_url() . 'lib/jquery/js/jquery-1.12.0.min.js');
        osc_enqueue_script('jquery');
        osc_register_script('jquery-ui', osc_current_web_theme_url() . 'lib/jquery-ui/jquery-ui.js', 'jquery');
        osc_enqueue_script('jquery-ui');
        osc_enqueue_script('php-date');

        osc_register_script('animatedModal', osc_current_web_theme_url() . 'js/animatedModal.js-master/animatedModal.min.js', 'jquery');
        osc_enqueue_script('animatedModal');

        osc_register_script('global-js', osc_current_web_theme_url() . 'js/global.js', 'jquery');
        osc_enqueue_script('global-js');

        osc_register_script('sticky', osc_current_web_theme_url() . 'node_modules/sticky-kit/dist/sticky-kit.js', 'jquery');
        osc_enqueue_script('sticky');

        osc_register_script('bootstrap-js', osc_current_web_theme_url() . 'lib/bootstrap/js/bootstrap.min.js', 'jquery');
        osc_enqueue_script('bootstrap-js');

        osc_register_script('bxslider-js', osc_current_web_theme_url() . 'lib/bxslider/js/jquery.bxslider.min.js', 'jquery');
        osc_enqueue_script('bxslider-js');

        $url = 'https://maps.googleapis.com/maps/api/js?libraries=places';
        if (trim(osc_get_preference('maps_key', 'cary_theme')) != '') {
            $url = 'https://maps.googleapis.com/maps/api/js?key=' . trim(osc_get_preference('maps_key', 'cary_theme')) . '&libraries=places';
        }
        osc_register_script('gmaps-js', $url);

        osc_register_script('sweetalert-js', osc_current_web_theme_url() . 'js/sweetalert-master/dist/sweetalert.min.js');
        osc_enqueue_script('sweetalert-js');

        if (osc_is_ad_page() && osc_get_preference('include_maps_js', 'cary_theme')) {
            osc_enqueue_script('gmaps-js');
        }

        osc_register_script('delete-user-js', osc_current_web_theme_js_url('delete_user.js'), 'jquery-ui');

        if (($this->location === 'user' &&
                in_array($this->section, array('dashboard', 'profile', 'alerts', 'change_email', 'change_username', 'change_password', 'items')))
            || (Params::getParam('page') === 'custom' && Params::getParam('in_user_menu') == true)
        ) {
            osc_enqueue_script('delete-user-js');
        }
        if(Params::getParam('page') === 'item' &&
            (Params::getParam('action')==='item_add' || Params::getParam('action')==='item_edit')) {
            osc_register_script('alt-checkbox-js', osc_current_web_theme_url() . 'js/alt-checkbox/jquery.alt-checkbox.js');
            osc_enqueue_script('alt-checkbox-js');
        }
    }
}
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mamotinho
      Olá pessoal , estou tendo um trabalho em defini a porta na qual eu quero que meu site se conecte. eu alterei a porta utilizada na minha máquina para eu utilizar somente ela no meu site porém quando eu acrescendo o campo da PORT da o seguinte erro.
      Connection Error: SQLSTATE[08001] SQLDriverConnect: 17 [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server inexistente ou acesso negado.  
      O Código de conexão na qual estou utilizando é esse.
       
      class Database { protected static $db; protected $db_host = DB_HOST; protected $db_usuario = DB_USER; protected $db_senha = DB_PASS; private function __construct() { try { self::$db = new PDO("odbc:Driver={SQL Server};Server=".$this->db_host.";port=8657; Uid=$this->db_usuario;Pwd=$this->db_senha; PDO::ATTR_PERSISTENT => true"); self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection Error: " . $e->getMessage()); } } public static function conexao() { if (!self::$db) { new Database(); } return self::$db; } } se alguém pude me ajuda ficarei bastante grato.
    • By Bassoli
      Olá, preciso de ajuda para meu sistema, preciso pegar o e-mail do usuário logado na conta, mais fiz um sistema que ele mostra todos email da mysql cadastrados, podem me ajudar?
       
      Meu sistema: 
      http://prntscr.com/qsm0tn (Puxar database)
      http://prntscr.com/qsm08u (Mostrar na label) 
      http://prntscr.com/qsm0n2 (Monstrando os emails no sistema)
    • By Good
      Boa noite,
      gostaria de saber como vocês fariam um sistema de delivery.
       
      Pensei em 3 soluções:
      1. Cadastrar as faixas de CEP que haverá sistema de entregas;
      2. Criar uma área delimitadora no google e exportar em KML para fazer a validação se o endereço do cliente está dentro do raio;
      3. Criar um raio de entregacom ponto fixo do estabelecimento, por exemplo, o estabelecimento só vai poder atender em um raio de até 10km.
       
      Qual método o ifood e outros gigantes trabalham? Existe algum código pronto para que eu possa dar uma olhada?
       
      Aguardo um contato, obrigado!
    • By ZeroEnd
      Boa tarde.

      Nao tenho muito conhecimento em javascript mas estou aprendendo aos poucos.

      Minha dúvida é sobre Xpath, bom na verdade eu entendi de forma básica como fazer uma busca usando Xpath, tanto é que para isso eu estava usando o programa Xpath Visualizer para entender.
      Mas eu não achei como empregar isso em uma página html, usando as mesmas variáveis que uso no programa para ter o mesmo resultado.
      Gostaria de saber se em algum lugar a informações de forma simples ou algo para tomar uma direção.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.