2013-03-05 2 views
1

Мое приложение имеет два редактируемых файла TreePanel, каждый из которых отображает дерево и, следовательно, каждый имеет свое собственное определение TreeStore. Первоначально данные для этих магазинов точно такие же: большое дерево JSON, загруженное с сервера. Поэтому было бы идеальным не делать два HTTP-запроса, загружая одно и то же дерево JSON, так как это очень дорогостоящая операция.ExtJS 4.0.7 TreeStore - избегайте двух HTTP-запросов, используя те же данные в двух TreeStores

Обратите внимание, что базовый объект TreeStore для этих двух TreePanels должен быть другим. В противном случае изменения на одной панели будут немедленно каскадироваться на другую панель.

Но кто-нибудь знает, можно ли избежать двух HTTP-запросов и как-то просто передать данные, загруженные для одного TreeStore другому?

Любые советы очень ценятся. Спасибо!

ответ

0

Найдено ответ на это здесь:

http://www.clintharris.net/2011/how-to-use-extjs-4-treepanels-with-both-static-data-and-model-stores/

Хитрость заключается в том, чтобы использовать метод setRootNode() на втором TreeStore и передать данные. Чтобы получить данные из первого TreeStore, я закончил просто рекурсивным повторением дерева и построением его строкового JSON-представления. Затем используйте метод Ext.decode(), чтобы преобразовать его обратно в объект. Это преобразование в и из довольно бесполезно, но глубокая копия() не работает - ошибки в ExtJS. Тем не менее, это все еще намного быстрее, чем поражение сервера.

Смежные вопросы