двойной запрос хэштегом? - PullRequest
0 голосов
/ 29 ноября 2011

Я использую backbone.js для маршрутизации и привязки событий к элементам DOM.Триггер событий и JSON извлекаются с сервера.

Обычно нажатие на элемент отправляет запрос POST на сервер с атрибутом id элемента.

Однако мне бы хотелосьхэш в URL для отображения #item_name вместо #id

Если пользователь нажмет кнопку «Назад» или получит прямой доступ к странице, у меня будет только #item_name, есть ли способ избежать выполнениядвойной запрос в этом случае.(сначала запрашивает идентификатор элемента, а затем фактический запрос)

Если нет, это существенно повлияет на производительность загрузки страницы с прямой ссылкой?

1 Ответ

0 голосов
/ 29 ноября 2011

Если вам нравится это, ваш item_name должен быть уникальным в базе данных.Так что это уже своего рода идентификатор.В Backbone вы можете установить свойство, которое следует использовать в качестве идентификатора элемента для каждой модели.

Backbone.Model.prototype.idAttribute = 'some_model_property';

В вашем случае вам придется вызывать что-то вроде:

Item.Model.prototype.idAttribute = 'item_name';

Если вы сейчас используете функцию модели, такую ​​как load () или save (), Backbone собирается создатьURL-адреса предметов с идентификатором item_name вместо идентификатора.

POST to /item/item_name
GET /item/item_name

В дополнение к этому теперь вы можете выбрать эти модели из коллекции по их item_names:

var model = myCollection.get(item_name);

Единственная проблема заключается ву вас может быть только один атрибут id для модели.Таким образом, вы потеряете возможность использовать фактический идентификатор в качестве свойства идентификатора для этих моделей.

...