Название: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 07, 2012, 14:13 Есть одна страничка на которой загружается большой xml файл (1-7МБ) и отображаю на страничке некоторую инфу, Но мне надо открить новую страничку на которой будет более детальная инфа с хмл. Так как мне передать хмл обєкт на другую страничку?
Название: Re: Как передать обект между двума страничками? Отправлено: invasion от Июль 13, 2012, 15:32 я бы попробовал static или файл как временный буфер, в зависимости от вашей реализации...
Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 13, 2012, 18:27 Ну реализация очень простая, вебкит отображает страничку в которой с помочу js читаю хмл и частично отображаю нужную инфу на страничке, но потом кликаю по силке и открываю новую страничку, где отображаю более детальную информацию с хмл. Сейчас я два раза открываю хмл, а как сделать что бы один?
Название: Re: Как передать обект между двума страничками? Отправлено: fuCtor от Июль 13, 2012, 20:17 Если читаете XML из сети, делаете частичное отображение, нужно ли вообще использовать Webkit? Может может реализовать на виджетах? Либо там сложное динамическое взаимодействие реализовано?
Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 13, 2012, 21:07 Если читаете XML из сети, делаете частичное отображение, нужно ли вообще использовать Webkit? Может может реализовать на виджетах? Либо там сложное динамическое взаимодействие реализовано? хмл читается с диска (локально). Вебкит просто браузер, а основная логика на яваскрипт! хмл парсится в страничку.Что значит "частичное отображение" ? Название: Re: Как передать обект между двума страничками? Отправлено: fuCtor от Июль 14, 2012, 05:25 Ну реализация очень простая, вебкит отображает страничку в которой с помочу js читаю хмл и частично отображаю нужную инфу на страничке, но потом кликаю по силке и открываю новую страничку, где отображаю более детальную информацию с хмл. Сейчас я два раза открываю хмл, а как сделать что бы один? Если перенести логику на Qt, то тогда можно сделать что-бы файл не перезагружался, а сразу переходить к нужным фрагментам и визуализировать их.Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 14, 2012, 10:38 К сожелению так сделать нельзя, поетому исчу решения на js.
Название: Re: Как передать обект между двума страничками? Отправлено: alexis031182 от Июль 14, 2012, 11:29 Решение возможно только для относительно небольшого куска данных. Если конечно не использовать посредника в виде http-сервера или локального файла на диске.
Первый вариант заключается во внедрении в ссылку (в тег "а") тела xml-документа. Очевидно, что это не самый лучший выход, да и серьёзно ограничен объёмом передаваемых данных. Второй вариант предполагает "ручное" конструирование целевой страницы на javascript. Тогда xml-объект можно будет передать. Но далеко не всегда этот вариант подходит: "ручную" страницу нужно создавать с нуля. В случае, если последняя имеет довольно сложную структуру, это действо будет весьма не простое. Другие варианты лично мне неизвестны. Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 14, 2012, 12:37 хмл имеет размер более 1-7 Мб!
Поясните, пожалуйста, второй вариант? Название: Re: Как передать обект между двума страничками? Отправлено: alexis031182 от Июль 14, 2012, 13:07 Второй вариант заключается в создании окна/вкладки:
Код Эту страницу придётся полностью реализовывать на js. Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 14, 2012, 13:54 Я и так создаю страничку через JS.
Ок, и как передать объект в созданную страничку? Название: Re: Как передать обект между двума страничками? Отправлено: alexis031182 от Июль 14, 2012, 20:11 window.opener (http://javascript.ru/window.opener) должен помочь.
Название: Re: Как передать обект между двума страничками? Отправлено: fuCtor от Июль 15, 2012, 10:22 Еще один вариант в голову пришел, все так же переложить часть логики на C++, но только той что занимается выделением нужной части XML файла. Сделать класс который будет выдавать по запросу нужные грагменты XML, прокинуть его в обе страницу и обращаться из JS.
Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 15, 2012, 10:33 Но тут опять вопрос, как прокинуть обэкт с++ --> JS ?
Название: Re: Как передать обект между двума страничками? Отправлено: Bepec от Июль 15, 2012, 11:30 http://www.prog.org.ru/topic_20820_0.html
Тоже интересная, но довольно лёгкая темка :) Название: Re: Как передать обект между двума страничками? Отправлено: fuCtor от Июль 15, 2012, 11:33 Но тут опять вопрос, как прокинуть обэкт с++ --> JS ? http://doc.qt.nokia.com/4.7-snapshot/qwebframe.html#addToJavaScriptWindowObject Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 16, 2012, 08:29 window.opener (http://javascript.ru/window.opener) должен помочь. Да, класс, то что нужно, но возникла проблемка, надо организовать многострвничность в браузере! Где копать?Название: Re: Как передать обект между двума страничками? Отправлено: alexis031182 от Июль 16, 2012, 10:44 Да, класс, то что нужно, но возникла проблемка, надо организовать многострвничность в браузере! Где копать? Свой браузер делаете?Я так понимаю, что многостраничность - это несколько табов на форме. В этом случае нужно создать по одному экземпляру класса браузера на таб. Наверное так. Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 16, 2012, 11:08 Да, класс, то что нужно, но возникла проблемка, надо организовать многострвничность в браузере! Где копать? Свой браузер делаете?Я так понимаю, что многостраничность - это несколько табов на форме. В этом случае нужно создать по одному экземпляру класса браузера на таб. Наверное так. Неа, не браузер, просто оболочку для обработки js и отображения результата. Вот походу надо переопределить метод createWindow, а результатом будет новое окно QWebView. Код
Теперь надо подумать как организовать отображения многостраничности. и засунуть все это в qml. Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 16, 2012, 11:11 Но тут опять вопрос, как прокинуть обэкт с++ --> JS ? http://doc.qt.nokia.com/4.7-snapshot/qwebframe.html#addToJavaScriptWindowObject Да, здорово, проверил, работает! Но для меня важно передавать уже разпарсеный хмл, так как это самый долгий процесс у меня! Но вопрос, как передать хмл объект в страничку? Название: Re: Как передать обект между двума страничками? Отправлено: fuCtor от Июль 16, 2012, 11:48 Но тут опять вопрос, как прокинуть обэкт с++ --> JS ? http://doc.qt.nokia.com/4.7-snapshot/qwebframe.html#addToJavaScriptWindowObject Да, здорово, проверил, работает! Но для меня важно передавать уже разпарсеный хмл, так как это самый долгий процесс у меня! Но вопрос, как передать хмл объект в страничку? Никак, как вариант можно парсить на стороне C++, а в браузер вкидывать готовые фрагменты разметки. Разбор/парсинг/формирование ответа можно выводить в поток, а по окончанию кидать результат сигналом, к которому сделать биндинг в JS коде на странице + к этому jQuery (например) и вполне можно таким хитрым способом формировать вывод. Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 16, 2012, 12:58 А если сделать болванку на QWebPage с нужными скриптами и засунуть ее в отдельный поток?
Название: Re: Как передать обект между двума страничками? Отправлено: mutineer от Июль 16, 2012, 13:10 Виджеты могут работать только в GUI-потоке
Название: Re: Как передать обект между двума страничками? Отправлено: Ubuntu_linux от Июль 16, 2012, 13:45 Виджеты могут работать только в GUI-потоке Это да!Я виду к тому, что может страница унаследована не от виджета, а от обьэкта, например. Название: Re: Как передать обект между двума страничками? Отправлено: mutineer от Июль 16, 2012, 13:57 ну так загляни в документацию
|