Сайт AJAXify

Другим отличием, на которое следует обратить внимание, является обработка значений undefined:

mergeInto = { a: 1}
toMerge = {a : undefined, b:undefined}
lodash.extend({}, mergeInto, toMerge) // => {a: undefined, b:undefined}
lodash.merge({}, mergeInto, toMerge)  // => {a: 1, b:undefined}

Таким образом, merge не объединит значения undefined в определенные значения.

13
задан Brian Ramsay 6 July 2009 в 20:17
поделиться

5 ответов

It's a fairly simply process of (1) Parsing the hash tag, and (2) Loading the content via Ajax as you normally would.

If you load more content when the user clicks on the page, just be sure to always correctly modify the hash tag to reflect what's on the page.

Here's a quick example to play around with. Click on a name and note the hash tag. The relevant Javascript looks like this :

// Go straight to content if it's in the hash.
$(document).ready(function(){
   load_story_from_hash();
});

// Call this function whenever user clicks on a hash link
function set_hash(hash){
   window.location.hash = hash;
   load_story_from_hash()
}

// Actually load content based on the hash in the URL
function load_story_from_hash(){

   var hash = window.location.hash;
   hash = hash.replace(/^#/, '');

   if (hash) {

      $('#post_container').load(hash+'.html', {}, function(){
         $.scrollTo('#post_container', 1000);
      });

   }

}
3
ответ дан 2 December 2019 в 01:57
поделиться

The answer is no, you can't get the value of the URL hash server side. See How to get Url Hash (#) from server side.

You'll have to get the hash value client-side and make an extra request.

3
ответ дан 2 December 2019 в 01:57
поделиться

Лучший способ сделать это - иметь один index.php, который загружает все остальные страницы на основе частей URL после него. Например:

http://www.example.com/index.php/reports/employees/hoursWorked

В этом случае будет запущен index.php, он может увидеть, что запрашивается, это отчет о отработанных часах, и загрузите этот контент. Проблема в том, что если index.php затем загружает весь остальной контент с помощью AJAX, URL-адрес в браузере никогда не изменится.

Один из способов решения этой проблемы - разместить ссылку «Ссылка на эту страницу» на каждой странице который содержит URL-адрес, который пользователи могут добавить в закладки.

-1
ответ дан 2 December 2019 в 01:57
поделиться

Что ж, вы можете использовать один из этих инструментов или свернуть свой собственный. Использует window.location.hash вместе с другими уловками.

0
ответ дан 2 December 2019 в 01:57
поделиться

История jQuery — мой предпочтительный выбор. Его можно найти здесь: http://www.balupton.com/projects/jquery-history/ Обеспечьте кроссбраузерную поддержку, привязку к хэшам, перегрузку хэшей и все остальное.

Для него также существует расширение Ajax под названием jQuery Ajaxy, позволяющее легко преобразовать вашу веб-страницу в надлежащее приложение Ajax без необходимости внесения изменений на стороне сервера и сохранения совместимости с SEO и JS-Disabled: http://www. .balupton.com/projects/jquery-ajaxy/

Это решение выбрали такие сайты, как http://wbhomes.com.au/ и http://www.balupton .com

В целом, они хорошо документированы, поддерживаются и многофункциональны. Они также выиграли вопрос о вознаграждении здесь Как отображать запросы Ajax в URL?

1
ответ дан 2 December 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: