Возьмем два варианта вывода на экран текста из файла.
$text = 'Какой то текст';
1-й вариант:
echo $text;
2-й вариант:
$text[1] = $text;
echo json_encode($text);
В обоих случаях текст будет выведен на экран, за исключением того, что во втором случае его нужно будет распарсить на стороне клиента. Суть вопроса в следующем, сможет ли поисковик, зайдя на эту страницу прочитать "echo json_encode($text)"? В первом то случае, понятно, прочитает, а вот как быть с JSON? Текст то там закодирован.
Если кто то решит ответить типа "А зачем тебе это нужно?", отвечу сразу: НУЖНО, и переменная $text на самом деле представляет собой в массив, а, как он будет размещаться на странице, с этим у меня проблем нет, тут уже не PHP? тут JS будет работать с DOM-элементами.
Может кто сталкивался с таким вопросом?
Запранее спасибо!
Спустя 18 минут, 24 секунды (14.09.2011 - 23:56) caballero написал(а):
ты же текст из json потом вытащишь яваскриптом (а что иначе с ним делать?) и куда нибудь в страницу воткнешь - вот поисковик и прочитает.
ты ж сам написал
ты ж сам написал
Цитата |
В обоих случаях текст будет выведен на экран, |
внутри JSON текст виден вообщето
Спустя 16 часов, 30 минут, 53 секунды (15.09.2011 - 16:26) Гость_Greg1978 написал(а):
Все вариации работы JS начиная от JSON заканчивая шаблонизаторами на JS поисковиками плохо индексируются, если вообще не индексируют что скорее всего.
Возможные причины для этого:
1. Некоторые задержки в генерации страницы (бывают довольно большие), а это очень влияет на индексацию и положения места в поисковике.
2. При всём этом паук не выводит себе на экран ничего потому как у него его нет, писать дополнительные плагины по обработке JSON данных для страницы (которая кстати никогда не откроется у паука а значит требуется загрузить дополнительную массу скриптов для генерации) думаю не будет никто так как разные сайты по разному генерируют, в таком случае, страницу (вплоть до применения шаблонизаторов) могут и не принять.
Самые индексируемые страницы считаются статичные.
Возможные причины для этого:
1. Некоторые задержки в генерации страницы (бывают довольно большие), а это очень влияет на индексацию и положения места в поисковике.
2. При всём этом паук не выводит себе на экран ничего потому как у него его нет, писать дополнительные плагины по обработке JSON данных для страницы (которая кстати никогда не откроется у паука а значит требуется загрузить дополнительную массу скриптов для генерации) думаю не будет никто так как разные сайты по разному генерируют, в таком случае, страницу (вплоть до применения шаблонизаторов) могут и не принять.
Самые индексируемые страницы считаются статичные.
Спустя 6 часов, 35 минут, 13 секунд (15.09.2011 - 23:02) evgen6667 написал(а):
Цитата |
ты же текст из json потом вытащишь яваскриптом (а что иначе с ним делать?) и куда нибудь в страницу воткнешь - вот поисковик и прочитает. |
JavaScript из JSON текст на страницу вставит на стороне клиента, а поисковик работает на сервере. Где он там что прочитает? Ворос стоял может ли он таспарсить строку JSON так же ка и JavaScript?
Спустя 8 минут, 32 секунды (15.09.2011 - 23:10) evgen6667 написал(а):
Цитата |
Самые индексируемые страницы считаются статичные. |
Они вообще, остались еще, статичные то страницы?
Сейчас на нормальных сайтах весь контент лежит в базе данных, и страницы генерируются на сервере. Кто это интересно сейчас делает 200 - 300 страниц сайта (утрирую), в статичном виде.
У меня страницы генерируются на сервере в зависимости от запроса, а ответ с сервера приходит в виде строки JSON. И большую часть DOM выстраивает уже JS на стороне клиента.
Спустя 1 час, 38 минут, 49 секунд (16.09.2011 - 00:49) vital написал(а):
var string;
arr=JSON.parse(СТРОКА_ИЗ_ПХП);
for(var key in arr) string+=arr[key];
doument.write(string);
Вот вам гигантский скрипт, который выведет абсолютно любой json на страницу без лишнего.
arr=JSON.parse(СТРОКА_ИЗ_ПХП);
for(var key in arr) string+=arr[key];
doument.write(string);
Вот вам гигантский скрипт, который выведет абсолютно любой json на страницу без лишнего.
Спустя 21 час, 58 минут, 46 секунд (16.09.2011 - 22:48) evgen6667 написал(а):
Цитата |
Вот вам гигантский скрипт, который выведет абсолютно любой json на страницу без лишнего. |
vital, вы чего мне код на JavaScript написали? Вы вопрос читали? Меня не интересует, как вывести строку JSON в браузер, меня интересует прочитает ли поисковик в файле PHP эту стороку на сервере, если она будет в этом формате.
А ваш гигантский код не будет работать в IE, так как JSON.parse(СТРОКА_ИЗ_ПХП) он не понимает.
Если использовать jQuery, то можно кроссбраузерно написать $.parseJSON(СТРОКА_ИЗ_ПХП), вот это везде работает.
И тем не менее, вопрос остается открытым, а JavaScript код у меня давно написан и работает, и вообще все уже давно работает. Просто, если поисковик не понимает JSON, придется отказаться от приема данных таким методом и написать код, который будет разбивать полученное содержание и вставлять в нужные места на странице, что будет дополнительным геморроем.
Спустя 4 минуты, 6 секунд (16.09.2011 - 22:52) Игорь_Vasinsky написал(а):
Ну есть же в инете сервера для анализа сайтов или контента сайтов - там почти везде есть - посмотреть глазами поискового бота... вот и проверь что он видит а что нет.
Спустя 30 минут, 32 секунды (16.09.2011 - 23:22) killer8080 написал(а):
А с чего это поисковики станут индексировать JS код?
Откуда поисковому боту знать, что вы будете делать с этими данными на стороне клиента?
Индексируется отображаемый контент, js код таковым не является, это всего лишь подгружаемые данные, и не известно будут ли они вообще отображаться. Представляете какая бы была лазейка для сеошников, если бы поисковики стали индексировать javascript. И какую ссылку поисковик тогда будет выдавать в поисковой выдаче людям? Ссылку на голый JSON?
Если делаете динамическую подгрузку контента по ссылкам, то нужно делать двойной вариант, например
в этом случае для большинства юзеров будет срабатывать событие onclick и подгружаться аяксом контент новостей, а для юзеров с отключенным JS и поисковых ботов обычная страница с тем же контентом, она и будет индексироваться как положено.
Откуда поисковому боту знать, что вы будете делать с этими данными на стороне клиента?
Индексируется отображаемый контент, js код таковым не является, это всего лишь подгружаемые данные, и не известно будут ли они вообще отображаться. Представляете какая бы была лазейка для сеошников, если бы поисковики стали индексировать javascript. И какую ссылку поисковик тогда будет выдавать в поисковой выдаче людям? Ссылку на голый JSON?
Если делаете динамическую подгрузку контента по ссылкам, то нужно делать двойной вариант, например
<a href="/news.html" onclick="loadContent('news'); return false;">news</a>
в этом случае для большинства юзеров будет срабатывать событие onclick и подгружаться аяксом контент новостей, а для юзеров с отключенным JS и поисковых ботов обычная страница с тем же контентом, она и будет индексироваться как положено.
Спустя 1 минута, 7 секунд (16.09.2011 - 23:24) Игорь_Vasinsky написал(а):
логично Ватсон.
Спустя 1 день, 4 часа, 23 минуты, 1 секунда (18.09.2011 - 03:47) evgen6667 написал(а):
Цитата |
А с чего это поисковики станут индексировать JS код? |
killer8080. А кто сказал, что там JS код? Об этом и речи не было. Обычный HTML, берется из базы данных в виде массива, и вот это массив и подгружается на страницу с помощью JSON.
А ссылка как раз и имеет такой вид, какой Вы написали для динамической подгрузки контента.
Все дело в том, что если контент будет отдаваться PHP скриптом на страницу при помощи echo, то он весь встанет в какой нибудь DIV, а мне нужно чтобы все то, что пришло с сервера в браузер встало в разные места на странице. Для этого и использую JSON.
Вот только не знаю, если поисковик перейдет по ссылке и увидит там echo json_encode(...) вместо echo '...', сможет ли он прочитать его.
А по ссылке то он точно зайдет туда, так как ссылка действительно реальная и при включенном JS просто перехватывается обработчиком.
Спустя 6 часов, 58 минут, 38 секунд (18.09.2011 - 10:45) killer8080 написал(а):
Цитата (evgen6667 @ 18.09.2011 - 03:47) |
Вот только не знаю, если поисковик перейдет по ссылке и увидит там echo json_encode(...) вместо echo '...', сможет ли он прочитать его. |
echo он видеть не может - это серверный скрипт, увидит он результат его работы.
Цитата (evgen6667 @ 18.09.2011 - 03:47) |
А по ссылке то он точно зайдет туда, так как ссылка действительно реальная и при включенном JS просто перехватывается обработчиком. |
ссылка - это то, что прописано в href, любые события - это javascript. Поисковик будет индексировать контент на который ссылается ссылка, обработчики событий его не интересуют. Думаете он станет интерпретировать js код, определять какие действия он делает с DOM, подгружает ли аяксом? Это врядли
Ну хорошо допустим он проиндексирует аяксовый урл, и что? Яндекс или гугл будет выдавать людям, на запросы, ссылку на ваш JSON? Что бы вы стали делать, если бы перешли по ссылке, а вместо страницы увидели яваскриптовую абракадабру? Оно вам надо?
Повторюсь, для ботов нужно отдавать полноценную хтмл страницу, которую они проиндексируют, и на которую по ссылкам из поисковика, будут приходить люди, аякс только для удобства пользователей, ну и возможно уменьшения трафика.
Спустя 1 день, 9 часов, 24 минуты, 40 секунд (19.09.2011 - 20:10) evgen6667 написал(а):
Цитата |
для ботов нужно отдавать полноценную хтмл страницу |
killer8080, как можно сделать полноценную HTML страницу, если весь контент лежит в базе данных MySql, и PHP оттуда его берет. И второе, если я, как вы говорите, для удобства пользователей, аяксом буду подгружать полноценную HTML страницу в текущую, то что получится, еще раз BODY, HEAD, TITLE, ну и все остальное? Полноценная страница же такой должна быть. Бардак получается.
У меня структура такая. Страница всего одна, то есть index.php. Ссылки на другие страницы имеют вид <a href="some_page.php">Ссылка</a>, то есть урл вполне реальный и совсем не аяксовский. Но, если перейти по этой ссылке, то можно в действительности увидеть джейсоновскую абракодабру(JSON), но только не яваскриптовскую, как вы написали. JSON это не JavaScript. Его применяют практически во всех языках, включая и PHP. Так что нет у меня никаких аяксовых урлов, все ссылки имеют атрибут href на абсолютно реальные адреса.
Цитата |
echo он видеть не может - это серверный скрипт, увидит он результат его работы. |
это понятно, что это серверный скрипт. Так и echo json_encode() то-же серверный скрипт. Вот у меня и встает вопрос может ли поисковик увидеть результат именно такого скрипта. Парсит ли он строку в формате JSON, или нет. PHP, да и все другие языки же с этим справляются. И что вы все время мне о каком то яваскрипте говорите, нет там ни какого яваскрипта и никакие поисковики я не заставляю его читать, яваскрипт вообще клиентски язык, а мы о сервере говорим, где поисковик по страницам и по базам данных лазиет
Спустя 1 час, 32 минуты, 32 секунды (19.09.2011 - 21:42) killer8080 написал(а):
evgen6667
у меня такое ощущение, что мы говорим на разных языках. JSON - это JavaScript Object Notation, поэтому аргументы типа:
у меня такое ощущение, что мы говорим на разных языках. JSON - это JavaScript Object Notation, поэтому аргументы типа:
Цитата (evgen6667 @ 19.09.2011 - 20:10) |
то можно в действительности увидеть джейсоновскую абракодабру(JSON), но только не яваскриптовскую, как вы написали. JSON это не JavaScript. |
не принимаю.
Цитата (evgen6667 @ 19.09.2011 - 20:10) |
Его применяют практически во всех языках, включая и PHP. |
В php нет никакого json-а, в php есть ассоциативные массивы или объекты, которые могут быть преобразованы в текст, синтаксически соответствующий объекту JavaScript. Применяется он для обмена данными и построения api, как альтернатива громоздкому xml.
На клиентской стороне, браузер сам по себе с ним работать не может, он обрабатывается с помощью самого JS, поэтому ваши аргументы не состоятельны.
Цитата (evgen6667 @ 19.09.2011 - 20:10) |
Страница всего одна, то есть index.php. Ссылки на другие страницы имеют вид <a href="some_page.php">Ссылка</a>, то есть урл вполне реальный и совсем не аяксовский. Но, если перейти по этой ссылке, то можно в действительности увидеть джейсоновскую абракодабру(JSON) |
Ну и нафига поисковику ваш json? Ну допустим он его проиндексирует, как пользователи зайдут на страницу которой нет? Посмотреть на джаваскриптовый объект? Это мне напоминает индексацию сайта на фреймах, но там хоть html есть, а тут что?
Цитата (evgen6667 @ 19.09.2011 - 20:10) |
И второе, если я, как вы говорите, для удобства пользователей, аяксом буду подгружать полноценную HTML страницу в текущую, то что получится, еще раз BODY, HEAD, TITLE, ну и все остальное? Полноценная страница же такой должна быть. Бардак получается. |
Я и не говорил аяксом грузить полный хтмл, подгружаются только контент соответсвующих блоков. Смыл в том что так сайт делать нельзя. Хотите подгружать контент джаваскриптовым объектом - ради бога, но извольте предоставить полноценную html альтернативу. По ссылке в href должен быть html и ни каких json-ов!
То есть ваш some_page.php должен выдать полноценную страницу, на которую может ссылаться поисковик, а на онклик вешаете функцию, которая подгрузит аяксом контент и запихнёт его по нужным блокам.
Кстати покажите, фрагмент кода, как вы умудряетесь без аякса по ссылке подгрузить json.
Спустя 1 день, 13 часов, 45 минут, 17 секунд (21.09.2011 - 11:28) evgen6667 написал(а):
killer8080 , да вы правы, я что то сглупил, паписав, что JSON не яваскрипт.
Просто вопрос был в том, что если с помощью PHP можно распарсить строку JSON, то может и поисковик может это делат? Оказалось, что нет.
Пришлось отказаться от JSON и возвращать при запросе всю страницу some_page.php, и уже на клиенте парсить этот HTML и вставлять нужные фрагменты в нужное место, включая заголовок страницы TITLE. Работает идеально, хотя и в первом варианте работало идеально, только в этом случае поисковики будут видеть эту страницу some_page.php.
Кстати
Просто вопрос был в том, что если с помощью PHP можно распарсить строку JSON, то может и поисковик может это делат? Оказалось, что нет.
Пришлось отказаться от JSON и возвращать при запросе всю страницу some_page.php, и уже на клиенте парсить этот HTML и вставлять нужные фрагменты в нужное место, включая заголовок страницы TITLE. Работает идеально, хотя и в первом варианте работало идеально, только в этом случае поисковики будут видеть эту страницу some_page.php.
Кстати
Цитата |
покажите, фрагмент кода, как вы умудряетесь без аякса по ссылке подгрузить json |
А я разве говорил, что нет аякса? Весь сайт сделан полностью на аяксе. То есть пользователь видит в реальности только одну страницу, весь остальной контент подгружается, или заменяется аяксом. При этом сделана возможность открывать вкладку в новом окне, кликая по ссылке, как при обычной структуре сайта, перезагружать страницу (refresh) с сохранением текущего состояния, заходить на любую страницу по внешней ссылке, или набрав в строке браузера ее адрес. Так-же работает переход по истории, то есть кнопки браузера ВПЕРЕД-НАЗАД активны и работают как в обычном сайте. Все ссылки имеют реальный адрес в атрибуте HREF, и поисковик, перейдя по ней, попадет на реальную страницу.
Вам спасибо за диалог, хотя порой и разговаривали на разных языках!
Спустя 12 часов, 7 минут, 27 секунд (21.09.2011 - 23:35) killer8080 написал(а):
Цитата (evgen6667 @ 21.09.2011 - 11:28) |
Пришлось отказаться от JSON и возвращать при запросе всю страницу some_page.php, и уже на клиенте парсить этот HTML и вставлять нужные фрагменты в нужное место, включая заголовок страницы TITLE. |
А вот это не правильно. Вы меня так и не поняли. Смысл в том, что аякс должен запрашивать контент не по href ссылки, то есть запрос должен идти не к some_page.php, а к другому скрипту, отдающему данные в виде json, например
load.php?page=some_page.php
все аякс запросы будут идти к этому скрипту, а он в зависимости от параметров запроса, отдаёт JSON для соответствующей страницы.
А для пользователей с отключенным js, поисковых ботов и пользователей приходящих по ссылкам с других сайтов, открываются полноценные html страницы.
Ну в общем что то вроде этого
$(document).ready(function(){
$("a").click(function(){
if(this.hostname != "mysite.ru") return true;
$.getJSON("load.php?page="+encodeURIComponent(this.href), function(data){
$.each(data, function(id, content){
$("#"+id).html(content);
});
});
return false;
})
});
Спустя 9 минут (21.09.2011 - 23:44) Игорь_Vasinsky написал(а):
killer8080
жди "эксперта" - ты паражаешь своей логикой , особенно последний пример
жди "эксперта" - ты паражаешь своей логикой , особенно последний пример
Спустя 2 минуты, 28 секунд (21.09.2011 - 23:47) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 21.09.2011 - 23:44) |
жди "эксперта" - ты паражаешь своей логикой, особенно последний пример |
Придёт эксперт и меня забанит?
Спустя 2 минуты, 41 секунда (21.09.2011 - 23:49) Игорь_Vasinsky написал(а):
банит админ - и мы его знаем