O JavaScript Data Push está principalmente comprometido com o serviço de push on -line do WebApps. Não precisamos empurrar ativamente os dados do servidor para a área local sempre, como um servidor, para enviar solicitações de AJAX.
História da evolução dos dados de dados:
1. O protocolo HTTP é simples de pesquisar, mantendo um link ou enviando solicitações para o back -end continuamente através do front -end
2. Após a atualização do H5, o WebSocket melhora muito a conveniência de empurrar dados nas direções e nas direções unidirecionais.
3. SSE (Evento de Senhor-Securso): Uma nova maneira de os servidores pressionarem os dados
Cometa: servidor Push Technology com base na conexão HTTP Long
Esta lição apresenta o cometa: um servidor pressiona a tecnologia com base em conexões longas HTTP, que é uma arquitetura de aplicativos da Web. O servidor empurrará ativamente os dados para o programa do cliente de maneira assíncrona (o loop morto de solicitação do Ajax) sem que o cliente faça solicitações explícitas. A arquitetura do Comet é muito adequada para aplicativos da Web orientados a eventos, bem como aplicativos que exigem recursos interativos e em tempo real fortes, como análise de mercado de negociação de ações, salas de bate-papo e jogos on-line de versão da web.
1. Vamos primeiro olhar para o exemplo mais simples dos dados JSON de solicitação de Ajax:
index.html
<meta charset = "utf-8"> <script type = "text/javascript" src = "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.minmin.js"> </script> <script = "text/javascript">. function (dados) {console.log (dados);data.php
<? PHP Cabeçalho ('Tipo de Conteúdo: Application/JSON; Charset = UTF-8'); $ res = Array ('Sucesso' => 'OK', 'Text' => 'Eu sou o texto do teste'); eco json_encode ($ res);?>Dessa forma, o front-end pode obter os dados de back-end e gerá-los. Vamos simular o back -end pressionando continuamente os dados para o front -end:
Uma maneira é enviar continuamente solicitações de Ajax no loop frontal
2. Ajax no jQuery do front-end constantemente envia solicitações:
index.html
<meta charset = "utf-8"> <script type = "text/javascript" src = "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script> <script type = "text/javascript"> function.js " "JSON", Sucesso: função (Data) {Console.log (Data); </script>data.php
<? php cabeçalho ('Tipo de conteúdo: Application/json; charset = utf-8'); cabeçalho ("Controle de cache: max-Ara = 0"); // Defina sem sono de cache (1); $ res = Array ('sucesso' => 'ok', 'texto' => 'Eu sou o texto do teste'); echo json_encode ($ res);?>No entanto, essa pesquisa de conexão torna o desperdício de solicitação de rede muito óbvio. Também podemos deixar o servidor de back -end a seguir, veja o exemplo a seguir
3. Ajax nativo, o servidor o empurra de vez em quando (Loop de back -end, use ob_flush () e Flush () para cuspir dados)
data.php
<? php // cabeçalho ('content-type: Application/json; charset = utf-8'); cabeçalho ("Controle de cache: max-Ara = 0"); // Defina sem cache $ i = 0; while ($ i <9) {$ i ++; // $ res = Array ('sucesso' => 'ok', 'texto' => 'eu sou o texto do teste'); // echo json_encode ($ res); sono (1); $ radom = rand (1.999); eco $ radom; eco '<br/>'; ob_flush (); // cache de saída, deve ser usado com Flush (); // cache cuspir no navegador}?>JS do frontend (JS nativo implementa o AJAX e produz quando o estado muda) Referência: //www.vevb.com/article/82085.htm
var getxmlHttPreQuest = function () {if (window.xmlHttPrequest) {// navegadores mainstream fornecem xmlHttPrequest Return Return New XmlhttPreQuest (); } else if (window.activexObject) {// A versão inferior do navegador do IE não fornece o objeto xmlHttPrequest // para que você deve usar a implementação específica do navegador do IE ActiveXObject Return New ActiveXObject ("Microsoft.xmlHttPrequest"); }}; var xhr = getxmlHttPrequest (); xhr.onreadyStatechange = function () {console.log (xhr.readyState); if (xhr.readyState === 3 && xhr.status === 200) {// Execute a operação após aquisição bem -sucedida // os dados estão no xhr.ProSeText Console.log (xhr.roSponsetext); }}; xhr.open ("get", "data.php", true); xhr.send ("");O exposto acima é tudo sobre este artigo, espero que seja útil para todos aprenderem a programação de JavaScript.