Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как асинхронно выполнить запрос к серверу Добавлено: 05.08.12 21:48  

Автор вопроса:  Kryeker
Здравствуйте, возможно ли средствами Visual Basic 6 (без дополнительных компонентов) в асинхронном режиме отправлять и получать запросы с сервера?

Если нельзя, то вот вопрос: как компонентом WebBrowser получить данные в формате JSON? XML реализация работает, но JSON компактней.

Спасибо.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Avvelana



Вопросов: 2
Ответов: 18
 Профиль | | #1 Добавлено: 09.08.12 01:50
Технически-то наверно можно, но даже страшно представить что придётся сделать.. Смотрите в сторону CreateThread(), WaitForMultipleObjects().

Ответить

Номер ответа: 2
Автор ответа:
 Kryeker



Вопросов: 3
Ответов: 5
 Профиль | | #2 Добавлено: 09.08.12 05:37
Спасибо. Я вот придумал сделать отдельный EXE файл, допустим N2, так называемый сервер, который бы принимал данные в формате JSON и посредством механизма DDE передавал бы данные в основную программу для обработки. Минус лишь в том что N2 постоянно будет висеть в мертвом цикле, выполняя синхронные запросы, хотя может и не минус, одного потока вроде достаточно

Public Function SendGet(Query As String) As String
Dim objHTTP As Object
Set objHTTP = CreateObject("Microsoft.XMLHTTP";)
Call objHTTP.Open("GET", Query, False)
objHTTP.Send
SendGet = objHTTP.ResponseText
Set objHTTP = Nothing
End Function


Вопрос: стоит ли мне теперь после сего действа смотреть в сторону CreateThread(), WaitForMultipleObjects()? Что оптимальней/логичней? =)

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 09.08.12 08:38
Выбери жизнь. Выбери платформу. Выбери язык программирования. Выбери карьеру. Выбери компанию своей мечты. Выбери HR с модельной внешностью. Выбери сеньерскую зарплату. Выбери офис в 5 минутах от метро, выбери опен спейс, халявное кофе, XBox и тенисный стол. Выбери официальное трудоустрйоство, социальный пакет и стоматологическую страховку. Выбери молодой дружный коллектив. Выбери гибкий график работы. Выбери командировки в Лондон и Мюнхен. Выбери обучение за счет компании. Выбери квартальные бонусы. Выбери крупные интересные проекты. Выбери поддержку легаси кода без документации. Выбери дедлайны и овертаймы. Выбери заваленные ночные билды. Выбери широкие возможности для карьерного роста и развития. Выбери некомпетентных коллег. Выбери съемную квартиру и машину в кредит. Выбери кризис среднего возраста в 25 лет. Выбери работу с утра и до поздней ночи, трату всего оставшеегося свободного время на стояние в пробках или поездки в метро, просиживай выходные в WOW, пытаясь вспомнить сколько лет назад ты последний раз был в отпуске или видел живую девушку, осознавая, что после тебя ничего не останется кроме тонны такого же легаси кода, который будет переписан как только ты уйдешь в компанию через дорогу где платят на 100 долларов больше. Выбери свое будущее. Выбери жизнь.

Но зачем мне это? Я решил не выбирать жизнь. Я выбрал кое-что другое… А причины? Причин нет. Кому нужны причины, когда есть VB6?

Ответить

Номер ответа: 4
Автор ответа:
 Kryeker



Вопросов: 3
Ответов: 5
 Профиль | | #4 Добавлено: 09.08.12 12:14
Язык конкретно под задачу подобран и поверьте уж, идеально с этим справляется, вагон свободного времени именно благодаря быстроте воплощения. И думаю не стоит убеждать вас что не единым VB6 владею...

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 09.08.12 16:09
А что мешает использовать XMLHTTP в асинхронном режиме?

Ответить

Номер ответа: 6
Автор ответа:
 Avvelana



Вопросов: 2
Ответов: 18
 Профиль | | #6 Добавлено: 09.08.12 19:29
С потоками вообще сложно работать, тем более на ВБ6. Если есть возможность, лучше делать проще. Чем проще - тем лучше. Если запросов будет не очень много, то можно использовать ваш вариант. Вообще хитро придумали, я уже отвык от таких вещей, мне даже в голову про DDE не пришло. :)

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 09.08.12 21:02
я бы рекомендовал прислушаться к совету

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 09.08.12 21:03
& LamerOnLine
http://www.dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/

Ответить

Номер ответа: 9
Автор ответа:
 Kryeker



Вопросов: 3
Ответов: 5
 Профиль | | #9 Добавлено: 09.08.12 21:54
Всем спасибо, удалось, работает. Пока DDE вариант тестирую =)

Ответить

Номер ответа: 10
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #10 Добавлено: 15.08.12 11:47
Можно и погуглить
http://www.sql.ru/forum/actualthread.aspx?tid=924186

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 15.08.12 20:23
LamerOnLine пишет:
А использовать DoEvent в каждой минимальной итерации - не просто изврат. Это Ахтунг!


http://www.sql.ru/forum/actualthread.aspx?tid=924186
  1. Do While oXMLHTTP.readyState <> 4
  2.     DoEvents
  3. Loop
  4. MsgBox oXMLHTTP.responseText


LamerOnLine, что же вы такие ахтунги советуете на форуме?

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 15.08.12 23:21
LOL спалилсо ))))))))))))

Ответить

Номер ответа: 13
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #13 Добавлено: 16.08.12 13:59
Дык код не мой :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам