Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 24.06.2011, 03:33
Temuchin вне форума Посмотреть профиль Отправить личное сообщение для Temuchin Найти все сообщения от Temuchin
  № 1  
Ответить с цитированием
Temuchin

Регистрация: Jun 2011
Сообщений: 10
Question Проблема при создании живого поиска

Хочу сделать живой поиск данные грузятся с базы данных на сервере.
пишу на flex. Вот часть кода:
Код AS3:
package
{
import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.ProgressEvent; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables;   import mx.controls.Alert;   public class SClass { private var loaded:URLLoader; private var nowEasySearchText:String;
public function SClass() {
searchString.addEventListener(TextOperationEvent.CHANGE, searchString_textInputHandler);
}
private function searchString_textInputHandler(event:TextOperationEvent):void {
if(searchString.text != null) {
if(loaded != null) {
try { loaded.data = null; loaded.close(); loaded = null; } catch(e:Error) { loaded.data = null; loaded = null; }
}
var variable:URLVariables = new URLVariables(); variable.text = nowEasySearchText = searchString.text; loaded = new URLLoader(); loaded.dataFormat = URLLoaderDataFormat.TEXT; var request:URLRequest = new URLRequest("http://[domanname]/index.php"); request.data = variable; request.method = URLRequestMethod.POST; loaded.addEventListener(Event.COMPLETE, loaderCompleteHandler); loaded.addEventListener(Event.OPEN, openHandler); loaded.addEventListener(ProgressEvent.PROGRESS, progressHandler); try {
loaded.load(request);
} catch (error:Error) {
Alert.show(error.message);
} }
} private function loaderCompleteHandler(event:Event):void {
loaded.removeEventListener(Event.COMPLETE, loaderCompleteHandler); loaded.removeEventListener(Event.OPEN, openHandler); loaded.removeEventListener(ProgressEvent.PROGRESS, progressHandler); trace(event.target.data)
{   private function openHandler(event:Event):void {
loaded.data = null;
{   private function progressHandler(event:ProgressEvent):void {
if(searchString.text != nowEasySearchText) {
loaded.data = null; loaded.close(); loaded = null;
}
{
}
}
Помогите разобраться почему не работает корректно. При быстром вводе иногда возникает ошибка потока.
В остальных случаях данные забиваются как бы в стек и выводятся медленно друг за другом т.е. вначале ответ на поиск по первой букве потом по первым двум и т.д.

Создать новую тему   Часовой пояс GMT +4, время: 14:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.