Има ли някаква причина, вероятно свързана със SEO, за използването на shebang (известен още като „hashbang“) в пренаписани URL адреси на динамичен сайт, но такава, която не използва AJAX?

Зависи малко от това какво имате предвид с „динамично генериране на страници“.

Ако генерирате динамично страниците си от страната на сървъра (напр. PHP скрипт) и ги изпращате по този начин на всички потребители, тогава няма да е необходимо допълнително да добавяте #! към URL адресите, тъй като съдържанието не се компилира от клиента (то вече е изпратено по този начин от сървъра).

Ако генерирате динамично страниците си от страна на клиента (използвайки JavaScript, Flash, Silverlight и т.н.), и можете да обслужвате копие, генерирано от страната на сървъра, тогава използването на техниките за обхождане AJAX може да има смисъл. Ако не можете да генерирате копие на страниците от страна на сървъра (и не планирате да добавяте тази функционалност), тогава няма да има предимство, като използвате #! във вашите URL адреси (в сравнение с просто използване на #).

Да, но само при условие, че съдържанието, което показвате, не е част от върнатия HTML източник.

Ако например сте имали 3 divs, представляващи раздели и ги показвате / скривате при щракване върху раздела, тогава не трябва да използвате #! защото съдържанието вече е в HTML. Не бихте могли да върнете друга страница на URL адреса „избягал фрагмент“.

Ако генерирате HTML в движение, тогава можете да използвате #! за да върнете потребителя в точното състояние, в което са били.

Ако съм ви разбрал правилно, вие не генерирате съдържание от страна на сървъра. Е, hashbang е предназначен да се използва локално.

Няма нищо общо със сървъра. Искам да кажа, че hashbang и след това в URL не се изпращат на сървър от браузъра. Той се използва от браузъра, за да бъде разрешен локално.

Първата му позната употреба, AFAIK, беше с имена анкери. Но с javascript можете да ги използвате, за да покажете страница с подобрено оформление, без да навредите на достъпността, например в меню с раздели или индекс на няколко стъпки например.

  • Всъщност, съдържанието ми за целите на този въпрос се генерира от страна на сървъра и изобщо не от страна на клиента. Вашият пример, цитирайки имена на анкери, ми помогна да зациментирам целта му.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?