Formato sabio, tipo de archivo sabio y práctico el uso sabio?

  • Consulte por Favor explique JSONP.
  • Gracias por el enlace, hay muy buena información.
  • Es un método más rápido que el otro? Por ejemplo, si el uso de XMLHttpRequest para OBTENER una solicitud (para el mismo dominio, obviamente, ya que es ‘normal’ ajax), o si utiliza el JSONP método (que no uso el XMLHTTPRequest) – va a ser más rápido que el otro? Sé que depende de varios factores, pero ¿alguien velocidad comparaciones?
  • en.wikipedia.org/wiki/JSONP
InformationsquelleAutor Mohammad | 2010-05-22

8 Comentarios

  1. 394

    JSONP es JSON con relleno, es decir, poner una cadena al principio y un par de paréntesis alrededor de ella. Por ejemplo:

    //JSON
    {"name":"stackoverflow","id":5}
    //JSONP
    func({"name":"stackoverflow","id":5});

    El resultado es que usted puede cargar el JSON como un archivo de secuencia de comandos. Si ya ha configurado una función llamada func, luego de que la función se llama con un argumento, que es el de datos JSON, cuando el archivo de secuencia de comandos se termine de cargar. Esto se utiliza generalmente para permitir cross-site AJAX de datos JSON. Si usted sabe que example.com es la porción JSON archivos que se parecen a la JSONP ejemplo dado anteriormente, entonces usted puede utilizar un código como este de recuperar, incluso si usted no está en el example.com dominio:

    function func(json){
      alert(json.name);
    }
    var elm = document.createElement("script");
    elm.setAttribute("type", "text/javascript");
    elm.src = "http://example.com/jsonp";
    document.body.appendChild(elm);
  2. 91

    Básicamente, no está permitido solicitar datos JSON desde otro dominio a través de AJAX debido a la política de mismo origen. AJAX permite recuperar datos después de una página que ya se ha cargado y, a continuación, ejecutar algún código/llamar a una función una vez que se devuelve. No podemos usar AJAX pero se nos permite inyectar <script> etiquetas en nuestra propia página y aquellos que están autorizados para hacer referencia a los scripts alojados en otros dominios.

    Normalmente puede usar esta opción para incluir las bibliotecas de un CDN como jQuery. Sin embargo, se puede abusar de esto y lo utilizan para capturar los datos en su lugar! JSON es ya válido JavaScript (la mayor parte), pero no podemos volver JSON en nuestro archivo de secuencia de comandos, debido a que no tenemos manera de saber cuando la secuencia de comandos/los datos se ha terminado de cargar y no tenemos forma de acceder a él a menos que le sea asignado a una variable o pasa a una función. Entonces, ¿qué podemos hacer en su lugar es decir el servicio web para llamar a una función en nuestro nombre cuando esté listo.

    Por ejemplo, se puede solicitar algunos datos de una bolsa de API, y junto con nuestro habitual de los parámetros de la API, le damos una devolución de llamada, como callThisWhenReady. El servicio web, a continuación, ajusta los datos con nuestra función y devuelve como este: callThisWhenReady({...data...}). Ahora, tan pronto como el script de carga, el navegador intentará ejecutarlo (como de costumbre), que a su vez llama a la función arbitraria y nos alimenta de los datos que queríamos.

    Funciona como una normal petición AJAX excepto que en lugar de llamar a una función anónima, tenemos que utilizar las funciones con nombre.

    jQuery en realidad apoya esta a la perfección para crear un nombre único de la función para usted y que pasa, que a su vez se ejecute el código que usted quería.

    • Independiente de qué? JSON no es un idioma
    • Sí…yo estaba buscando la palabra correcta… ¿qué le llama entonces? «para el intercambio de datos en formato», según json.org.
    • o más legible: JSON: un objeto de javascript en «texto» notación. Como usted toString() de un objeto de Java tal vez?
  3. 65

    JSONP le permite especificar una función de devolución de llamada que se pasa su objeto JSON. Esto le permite eludir el origen mismo de la política y de la carga JSON desde un servidor externo en el JavaScript en su página web.

  4. 30

    JSONP significa «JSON con Relleno» y se trata de una solución para la carga de datos de los diferentes dominios. Se carga el script en el head de la DOM y por lo tanto usted puede tener acceso a la información como si estuviera cargado en su propio dominio, así de paso de la cruz de dominio en cuestión.

    jsonCallback(
    {
        "sites":
        [
            {
                "siteName": "JQUERY4U",
                "domainName": "http://www.jquery4u.com",
                "description": "#1 jQuery Blog for your Daily News, Plugins, Tuts/Tips &amp; Code Snippets."
            },
            {
                "siteName": "BLOGOOLA",
                "domainName": "http://www.blogoola.com",
                "description": "Expose your blog to millions and increase your audience."
            },
            {
                "siteName": "PHPSCRIPTS4U",
                "domainName": "http://www.phpscripts4u.com",
                "description": "The Blog of Enthusiastic PHP Scripters"
            }
        ]
    });
    
    (function($) {
    var url = 'http://www.jquery4u.com/scripts/jquery4u-sites.json?callback=?';
    
    $.ajax({
       type: 'GET',
        url: url,
        async: false,
        jsonpCallback: 'jsonCallback',
        contentType: "application/json",
        dataType: 'jsonp',
        success: function(json) {
           console.dir(json.sites);
        },
        error: function(e) {
           console.log(e.message);
        }
    });
    
    })(jQuery);

    Ahora nos puede solicitar el JSON a través de AJAX usando JSONP y la función de devolución de llamada que hemos creado alrededor del contenido JSON.
    El resultado debería ser el JSON como un objeto que podemos utilizar los datos para lo que quieras sin restricciones.

  5. 18

    JSONP es, esencialmente, JSON con código extra, como una llamada a una función envuelto alrededor de los datos. Esto permite que los datos a ser utilizado durante el análisis.

  6. 13

    JSON

    JSON (JavaScript Object Notation) es una manera conveniente para el transporte de datos entre aplicaciones, especialmente cuando el destino es una aplicación JavaScript.

    Ejemplo:

    Aquí es un ejemplo mínimo que utiliza JSON como el transporte, la respuesta del servidor. El cliente realiza una petición Ajax con jQuery abreviatura de la función $.getJSON. El servidor genera un hash, formatos como JSON y devuelve al cliente. El cliente de este formato y lo pone en un elemento de la página.

    Servidor:

    get '/json' do
     content_type :json
     content = { :response  => 'Sent via JSON',
                :timestamp => Time.now,
                :random    => rand(10000) }
     content.to_json
    end

    Cliente:

    var url = host_prefix + '/json';
    $.getJSON(url, function(json){
      $("#json-response").html(JSON.stringify(json, null, 2));
    });

    De salida:

      {
       "response": "Sent via JSON",
       "timestamp": "2014-06-18 09:49:01 +0000",
       "random": 6074
      }

    JSONP (JSON con Relleno)

    JSONP es una forma sencilla para superar las restricciones del navegador cuando el envío de respuestas JSON a partir de diferentes dominios del cliente.

    El único cambio en el lado del cliente con JSONP es agregar una devolución de llamada parámetro a la URL

    Servidor:

    get '/jsonp' do
     callback = params['callback']
     content_type :js
     content = { :response  => 'Sent via JSONP',
                :timestamp => Time.now,
                :random    => rand(10000) }
     "#{callback}(#{content.to_json})"
    end

    Cliente:

    var url = host_prefix + '/jsonp?callback=?';
    $.getJSON(url, function(jsonp){
      $("#jsonp-response").html(JSON.stringify(jsonp, null, 2));
    });

    De salida:

     {
      "response": "Sent via JSONP",
      "timestamp": "2014-06-18 09:50:15 +0000",
      "random": 364
    }

    Enlace: http://www.codingslover.blogspot.in/2014/11/what-are-differences-between-json-and-jsonp.html

  7. 6

    «JSONP es JSON con código extra» sería demasiado fácil para el mundo real. No, tienes que tener poco discrepancias. ¿Cuál es la diversión en la programación si todo sólo funciona?

    Resulta JSON no es un subconjunto de JavaScript. Si todo lo que hacemos es tomar un objeto JSON y se envuelve en una llamada de función, un día va a ser mordido por extraño errores de sintaxis, como te fue hoy en día.

  8. 0

    JSONP es una forma sencilla para superar las restricciones del navegador cuando el envío de respuestas JSON a partir de diferentes dominios del cliente.

    Pero la aplicación práctica del enfoque implica diferencias sutiles que a menudo no son bien explicado.

    Aquí es un simple tutorial que muestra JSON y JSONP de lado a lado.

    Todo el código está disponible en Github y una versión en vivo se puede encontrar en la http://json-jsonp-tutorial.craic.com

Dejar respuesta

Please enter your comment!
Please enter your name here