загрузка содержимого HTML как JSON - PullRequest
1 голос
/ 13 апреля 2011

Я использую php & jquery. Я использую ajax-вызовы для загрузки огромного html-контента, полученного с какой-либо другой php-страницы. Поскольку со временем все становится медленнее, я понял, что проблема в том, что я должен вернуть результат в формате JSON. Содержимое HTML представляет собой таблицу с некоторым содержанием HTML и некоторыми событиями внутри него

но как мне это сделать? что-нибудь спл нужно?

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011

На вашей странице PHP, которая возвращает html-контент, вы можете сделать это:

// $html should contain the html code you want to return, e.g
// <table>...............</table>
$html = json_encode(array('html'=>$html));
echo $html;
die;

В javascript вы можете сделать что-то вроде этого:

function getHtml()
{
    $.getJSON("yourphpPage.php", function (result)
       {
           $("#yourHtmlDiv").html(result.html);
       }
     );
}
1 голос
/ 13 апреля 2011

Сначала вы должны попытаться понять, что такое json. Это просто формат для иерархической информации. Json сам по себе не дает этой информации никакого смысла, в отличие от HTML. Например, нет таких вещей, как «события», если вы не обработаете их вручную и не запустите обработчики событий.

Однако, если вы можете получить информацию в формате json и при этом быть полезной, она, скорее всего, займет меньше места / полосы пропускания, будет загружаться и даже анализироваться быстрее, чем HTML.

Чтение и разбор json довольно прост, так как он основан на JavaScript. Любой код JSON также является допустимым JavaScript, поэтому вы можете проанализировать его, например, с помощью eval. Однако делать это следует только в том случае, если вы полностью доверяете источнику json как не злонамеренному, потому что запуск всего, что вы получаете из запроса в eval (), не очень безопасен. Если вы не полностью доверяете вводу, вы можете использовать, например, http://api.jquery.com/jQuery.getJSON/

0 голосов
/ 13 апреля 2011

если я понимаю вашу проблему, вы хотите вернуть данные в формате jSON, тогда просто используйте

jQuery.ajax({

              dataType:'json'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...