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 msantino
      Bom dia.
       
      Estou desenvolvendo uma aplicação que vai acessar e gravar dados via webservice dentro do nosso crm... mas estou com um problema que quando tento fazer o acesso mostra a seguinte mensagem de erro:
       
      Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'http://dsksp015.phonoway.com.br:8051/wsDataServer/mex?xsd=xsd0' in /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php:113 Stack trace: #0 /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php(113): SoapClient->SoapClient('http://187.93.2...') #1 {main} thrown in /home/httpd/html/phonoweb.com.br/public_html/carrinhobitrix_busca/teste_soap.php on line 113
       
      Não sei se faz alguma diferença, mas nosso CRM é o TOTVS RM
       
      Grato.
    • By mamotinho
      Boa noite! estou com dúvidas em relação a array, eu tenho uma procedure no SQL Server e essa procedure exibe uma lista de resultados, eu gostaria de pega o valor desses resultados e lista em um array para eu comparar com outro valor que vai ser selecionado em um select , tipo abaixo:
       
      $arraySelect = $db->prepare(exec WebSite.dbo.server_value_product 2);
      $arraySelect->execute();
      $arrayExemple = $arraySelect->fetchAll();

      procedure_list = array($arrayExemple);
       
      !in_array($valorSelect, $procedure_list){
         echo 'O Valor selecionado não existe nos resultados da procedure';
      }
       
       
      alguem sabe como posso listar o resultado da procedure em array. e sabe se o valor que procuro está entre os resultados da array.
    • By asacap1000
      Galera já não sei mais onde procurar, estou configurando o processo de login com certificação digital porém não consigo ler o retorno. No site da Certisign explica em java e .Net mas utilizo em minha aplicação da intranet tudo em PHP como eu teria que fazer. Segue exemplo que eles fornecem em .Net
       
      <form action="https://autenticador.certisign.com.br/CertisignLogin/certificado/login" method="get"> <input type="hidden" value="209" id="id" name="id"> <input type="hidden" value="CHAVE CRIPTOGRAFICA INICIAL" id="nome" name="nome"> <input type="hidden" value="http://www.seusite.com.br/suaAplicacao/retorno" id="retorno" name="retorno"> <div> <input type="image" src="images/ico-certisign_30x30.png" alt="Submit" id="btnLoginCertisign"> </div> </form> O de cima envia até aí tudo bem
       
      Abaixo o retorno que é o que não consigo fazer em PHP
       
      string retorno = Request["cb"]; string encryptionKey = "<conteúdo da chave criptográfica descarregada na etapa 2>"; retorno = CryptoLogin.Instance.DecryptText(retorno,encryptionKey);</conteúdo> A variável retorno deverá mostrar as informações como o exemplo aaixo.
       
      CertificadoBean: { emissor: Certisign Autoridade Certificadora TESTE, nome: "PROPRIETARIO DO CERTIFICADO DE TESTE", cpf: "001.002.003-44", cnpj: "", OAB: "", validade: "2015-05-27 20:59:59", emissao: "2014-05-27 21:00:00", email: "proprietario.teste@certisign.com.br", certificadoBase64: "MIIFmDCCBICgAwI...... BAQUFADCCARAx" }  
    • By Luis Fernando R. Valle
      Estou desenvolvendo um site de vinhetas, mas estou com o seguinte problema. Quando o cliente clica em um áudio ele toca normalmente, mas quando clica em um segundo com o primeiro ainda em execução, ficam os dois áudios executando ao mesmo tempo no sit.
      Gostaria que um executasse por vez.
       
      Lembrando que os áudios estão inseridos separadamente.
    • By Camilavip
      Queria saber como fazer esse select e quando eu trazer um estado ele já puxa as cidades contidos nele, e ao escolher a cidade ele trazer os bairros. Consegui pela internet mas só com estados e cidades. no caso em 2 níveis, e eu precisaria em 3, faço pelo mysqli
       
      Em estados no banco está assim
      CREATE TABLE `estados` ( `id_estado` int(10) NOT NULL, `estado` varchar(30) NOT NULL ) ENGINE=Aria DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `estados` -- INSERT INTO `estados` (`id_estado`, `estado`) VALUES (1, 'Rio de Janeiro'), (2, 'Minas Gerais'); Cidades
      CREATE TABLE `cidades` ( `id_cidade` int(10) NOT NULL, `id_estado` int(10) NOT NULL, `cidade` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `cidades` -- INSERT INTO `cidades` (`id_cidade`, `id_estado`, `cidade`) VALUES (1, 1, 'Rio de Janeiro'), (2, 2, 'Belo Horizonte'); E bairros
      CREATE TABLE `bairros` ( `id_bairro` int(10) NOT NULL, `id_cidade` int(10) NOT NULL, `bairro` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `bairros` -- INSERT INTO `bairros` (`id_bairro`, `id_cidade`, `bairro`) VALUES (1, 1, 'Centro'), (2, 1, 'Tijuca'), (3, 1, 'Leblon'), (4, 2, 'Pampulha');  
×

Important Information

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