2010-02-14 30 views
8

Tôi có một trường văn bản cho bộ lọc hành động của khách hàng trên thiết bị di động. Tôi tự hỏi liệu tôi có nên đợi một vài phần nghìn giây trước khi khởi chạy mã của mình khi người dùng nhập ít hơn 3 ký tự và chỉ thực thi mã nếu văn bản dài hơn hoặc bằng 3 ký tự.Có đáng để chờ một vài phần nghìn giây trên một sự kiện TextChanged?

Mã được thực thi mất nhiều thời gian hơn (sql giống như cú pháp trên cơ sở dữ liệu lớn hơn) và người dùng nhìn thấy hang out trên listview.

Bạn nghĩ sao?

Trả lời

5

Việc trì hoãn truy vấn SQL trên các sự kiện thay đổi văn bản là một ý tưởng hay. Chúng tôi sử dụng kỹ thuật này trên Android. Chúng tôi cũng luôn đảm bảo hủy mọi truy vấn trước đó. Ví dụ: nếu người dùng nhập "ab" và chúng tôi đăng thông báo để bắt đầu truy vấn sau khi người dùng nhập "a", chúng tôi sẽ hủy thông báo đó khi người dùng nhập "b".

+0

bạn có thể chia sẻ mã không? – Pentium10

1

Nếu người dùng thấy hang-outs khi mã của bạn được khởi chạy, tôi sẽ không khởi chạy ngay lập tức.

Giả sử truy vấn thực thi trên cơ sở dữ liệu đầu vào của người dùng, tôi sẽ đợi cho đến khi người dùng nhập đủ ký tự để xử lý truy vấn nhẹ hơn và sẽ không làm hỏng giao diện người dùng. Đặc biệt, sử dụng cú pháp %LIKE%, bạn cần phải làm việc ít hơn, có nghĩa là truy vấn lớn hơn và thời gian chờ lâu hơn cho người dùng.

0

Tôi sẽ thử sử dụng phương pháp tương tự như ứng dụng gốc của Android vì mã nguồn khả dụng. Ví dụ: Contacts.

Kiểm tra những gì họ làm khi bạn tìm kiếm liên hệ.

+0

Tôi không hiểu những gì họ làm, có vẻ phức tạp đối với tôi. Bạn có thể giải thích bằng lời không? – Pentium10

+0

Tôi không kiểm tra xem họ làm gì. Tôi chỉ nói với bạn nơi bạn có thể tìm kiếm. – Macarse

+0

Danh bạ thực hiện truy vấn trên một chuỗi khác. Nó bắt đầu truy vấn ngay sau khi nó nhận được đầu vào đầu tiên và tiếp tục chạy truy vấn thường xuyên như nó có thể cho đến khi nó bắt kịp với bất kỳ điều gì người dùng đã gõ cho đến thời điểm này. Điều này cho phép nó được đáp ứng với cả hai chữ cái duy nhất, và một loạt các chữ cái được gõ nhanh hơn các truy vấn có thể được chạy. – hackbod

0

Một số ứng dụng cũng thực hiện xác thực các yếu tố đầu vào khi trọng tâm di chuyển đến trường nhập khác và không kiểm tra đầu vào trong khi nó đang được chỉnh sửa. Tôi không chắc đó có phải là một điều tốt hay không (tôi thấy hơi khó hiểu), nhưng chắc chắn là một cách để giải quyết vấn đề ...

0

Trên iPhone nếu bạn thấy độ trễ khi người dùng nhập sau khi bạn bắt đầu tìm kiếm, có thể bạn cần di chuyển thao tác truy vấn đến chuỗi nền, với khả năng hủy các tìm kiếm cũ như RG đã đề cập. Nó có thể có ý nghĩa để trì hoãn một chút cho vài ký tự đầu tiên nhưng sau đó không có sự chậm trễ vượt quá điều đó - sau khoảng 3-4 bạn có thể có đủ ký tự để bắt đầu trả lại kết quả có ý nghĩa.

Các vấn đề liên quan