2010-05-10 36 views
5

Thời gian tối đa bạn nghĩ là chấp nhận được đối với một tập lệnh web (ví dụ PHP) để thực thi trước khi nó bắt đầu trở thành một ít phiền toái cho người dùng (trung bình)? Tôi luôn nghĩ rằng nếu người dùng phải đợi hơn 1 giây để tải trang (điều này tất nhiên sau khi hình ảnh và css đã được lưu trữ .. quy tắc này thực sự chỉ áp dụng cho các yêu cầu tiếp theo), họ sẽ bắt đầu cảm thấy khó chịu.Mất bao lâu để một tập lệnh thực thi?

Trả lời

13

42 giây.

Trên thực tế, sự thật là nó đi xuống đến tuổi tác và sự mong đợi của người dùng mà bạn đang phục vụ. Ví dụ như bố mẹ tôi, có thể khoan dung nhiều hơn cho một sự chờ đợi kéo dài, nhưng cũng có nhiều khả năng nhấn nút lặp đi lặp lại nhiều lần, giống như họ sẽ đi qua lối đi bộ hoặc thang máy.

Điều đó cho biết câu trả lời thực sự là, mất bao lâu để người dùng đi mà không có phản hồi? Ngay cả việc khởi động biểu tượng đồng hồ cát nhanh hoặc thanh tiến trình, có thể tạo nên sự khác biệt trong thế giới cho người dùng. Điều đó nói rằng, nếu dịch vụ bạn cung cấp phải là thời gian thực và hoạt động giống như một ứng dụng dành cho máy tính để bàn, quá lâu về cơ bản là "bất kỳ điều gì có thể nhận thấy".

Vì vậy, câu trả lời đồng ý ... nó phụ thuộc. Điều đó nói rằng, ngay cả một "quá dài" chờ đợi, có thể được khắc phục bằng cách thiết kế giao diện người dùng thích hợp và tương tác của khách hàng.

+2

+1 để nhận phản hồi. Những điều phức tạp sẽ luôn mất nhiều thời gian (nếu không, chúng sẽ không phức tạp), nhưng điều khiến người dùng thất vọng là thiếu phản hồi (cảm giác rằng máy tính của tôi "không làm gì") – Agos

+0

Câu trả lời hay ở đây! – sepehr

+0

+1 cho (không phải như vậy) trích dẫn ẩn – Eineki

1

Vâng default limit để thực thi tập lệnh PHP là 30 giây. Nếu bạn chỉ hỏi từ quan điểm người dùng sau đó quy tắc của ngón tay cái sẽ càng nhanh càng tốt ...

0

Bất cứ điều gì mà phải mất hơn một vài giây của thời gian quá trình cần được xử lý khác nhau, sau đây là một số ví dụ

  • cache phía máy chủ sản lượng của nó
  • Chạy một công việc Cron mà không được xử lý
  • đẻ trứng một quá trình giả với PHP sử dụng system()
0

Quy tắc chung của tôi:

Giữ chế độ xử lý phía máy chủ trong giây lát trong trường hợp xấu nhất và chắc chắn dưới 30 giây trong trường hợp xấu nhất.

0

Tôi muốn nói một vài giây trước khi bạn nên gọi (PHP) ob_flush() và ít nhất gửi SOMETHING cho khách hàng. Nếu không, hiệu ứng thang máy sẽ tiếp tục và người dùng sẽ làm mới liên tục. Đối với tổng tải trang, nó không quan trọng miễn là bạn giữ cho người dùng được đăng. Một thanh tiến trình sẽ giúp với điều đó.

0

Chiến lược đã cố gắng và thực sự luôn là quản lý kỳ vọng. Đừng để người dùng thứ hai đoán bạn hoặc ứng dụng của bạn. Nếu, theo điểm chuẩn của bạn, thời gian xử lý trung bình cho một trang cụ thể sẽ vượt xa, giả sử ngưỡng 6 giây, hãy nói như vậy trước khi người dùng nhấp vào nút. Nó giống như chờ đợi một trang web gửi cho bạn một email xác nhận, không biết khi nào nó sẽ đến, bởi vì nó không bao giờ được đề cập rằng nó có thể mất vài giờ do lưu lượng truy cập vượt ra ngoài sự kiểm soát của trang web.

10

Jacob Nielsen đã thực hiện một số research on this.

  • 0,1 giây là về hạn có người sử dụng cảm thấy rằng hệ thống được phản ứng ngay lập tức, có nghĩa là không có phản hồi đặc biệt là cần thiết trừ để hiển thị kết quả .
  • 1.0 giây là giới hạn cho luồng người dùng không bị gián đoạn, mặc dù người dùng sẽ thấy sự chậm trễ. Thông thường, không có phản hồi đặc biệt nào là cần thiết trong thời gian trễ hơn 0,1 nhưng dưới 1,0 giây, nhưng người dùng sẽ mất cảm giác vận hành trực tiếp trên dữ liệu.
  • 10 giây là về giới hạn để thu hút sự chú ý của người dùng vào cuộc đối thoại. Đối với sự chậm trễ lâu hơn, người dùng sẽ muốn thực hiện các tác vụ khác trong khi chờ máy tính kết thúc, vì vậy họ sẽ được cung cấp phản hồi cho biết khi máy tính dự kiến ​​hoàn thành. Phản hồi trong thời gian trễ đặc biệt quan trọng nếu thời gian phản hồi có khả năng biến đổi cao, vì người dùng sẽ không biết điều gì sẽ xảy ra.

Để đóng vai trò như nguồn cảm hứng, bạn có thể nhìn vào cách mà cộng đồng NetBeans interpret these values:

  1. 0,1 giây - điều hướng và chỉnh sửa hành động (ví dụ như thư mục mở rộng, dán trong trình soạn thảo, chuyển hướng trong trình chỉnh sửa) và sơn của tất cả các thanh trình đơn phải hoàn thành trong giới hạn này
  2. 1.0 giây - tất cả cửa sổ và hộp thoại phải hoàn thành trong t giới hạn của mình
  3. 10 giây - tất cả các hành động được hoàn thành sau hơn 1 giây và thường mất ít hơn 10 giây phải hiển thị một số chỉ báo bận (ví dụ: con trỏ kính giờ hoặc văn bản "vui lòng đợi ..."); tất cả hành động mất nhiều thời gian hơn so với giới hạn này được yêu cầu phải cung cấp thanh tiến trình sử dụng Progress API
+0

+1 cho báo cáo có nguồn gốc. –

0

Từ kinh nghiệm của tôi, bạn nên cung cấp cho người sử dụng ít nhất một số thông báo nếu một cái gì đó sẽ lấy hơn vài giây. Có thể sử dụng AJAX với một số hình ảnh động ưa thích và thông báo như "Điều này sẽ mất một lúc".

Nếu bạn không thể sử dụng AJAX và tập lệnh PHP của bạn đang thực hiện, ví dụ, hơn 10 giây để tải, hãy thử suy nghĩ về cách tối ưu hóa nó.

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