Ne kadar çalıştırmak için bir komut dosyası için çok uzun?

9 Cevap php

Maksimum süresi nedir bunu (ortalama) kullanıcı için bir sıkıntı olmaya başlamadan önce yürütmek için bir web script (PHP örneğin) için kabul edilebilir olduğunu düşünüyor musunuz? Ben her zaman rahatsız almak başlamak istiyorum (Bu kural gerçekten sadece sonraki istekler için geçerlidir .. görüntüleri ve css sonra tabii bu önbelleğe alınmış) kullanıcı yüklemek için sayfa için 1 saniyeden fazla beklemek zorunda olmadığını düşündüm.

9 Cevap

42 saniye.

Aslında, gerçeği daha aşağı ikram kullanıcının yaşına ve beklentilerine gelince öyle. Örneğin benim babam, çok daha hoşgörülü uzun bir bekleme olabilir, ama aynı zamanda çok fazla tekrar düğmesine basın muhtemel ve yine onlar bir yaya geçidi ya da asansör düğmesine olacak gibi.

İşte gerçek cevabı ne kadar geri besleme olmadan gitmek kullanıcı için çok uzun olduğunu söyledi? Hatta hızlı kum saati logosu yukarı tekme, ya da ilerleme çubuğu, bir kullanıcı için dünyadaki tüm fark yaratabilir. Verdiğiniz hizmet gerçek zamanlı olması ve çok uzun "algılanabilir bir şey" temelde, bir masaüstü uygulaması gibi hareket etmelidir, söyledi.

Yani, polis-out cevap ... duruma göre değişir. O dedi, hatta bir "çok uzun" bekle, uygun kullanıcı arayüzü tasarımı ve müşteri etkileşimi ile aşılabilir.

Jacob Nielsen yapmış bazı research on this.

  • 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
  • 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.
  • 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.

: Ilham kaynağı olarak hizmet etmek, size nasıl NetBeans topluluk interpret these values bakmak olabilir

  1. 0.1 second - navigation and edit actions (e.g. folder expansion, paste in editor, navigation in editor), and painting of all menu bars must finish within this limit
  2. 1.0 second - all window and dialog openings must finish within this limit
  3. 10 seconds - all actions which are finished later than after 1 second and usually take less than 10 seconds must show some sort of busy indication (e.g. hour glass cursor or "please wait..." text); all actions taking longer than this limit are required to provide progress bar using Progress APIs

Peki default limit bir PHP komut dosyası yürütülmesi için 30 saniyedir. Sadece kullanıcıların perspektifinden soran sonra başparmak kuralı daha hızlı daha iyi olurdu ...

Işlem süresi fazla birkaç saniye sürer her şey farklı ele alınmalıdır, burada bazı örnekler

  • Onun çıkış sunucu tarafı Cache
  • Işlem yapan bir Cron işi çalıştırmak
  • Kullanarak PHP ile bir sahte işlem spawn system()

Bu linke bir göz atın:

http://www.simple-talk.com/dotnet/.net-tools/the-cost-of-poor-website-performance/

sonra sadece kullanıcılara ulaşabilir hayal kırıklığı düzeyini karar.

Zaman kural:

Kötü durumda 30s altında ortalama durum senaryo ve kesinlikle ikinci bir altında, sunucu tarafında işleme tutun.

Ben (PHP) çağırmalıdır önce bir kaç saniye demek ob_flush() ve en azından müşteriye ŞEY göndermek istiyorum. Aksi asansör etkisi devralacak ve kullanıcı tekrar tekrar yenilenir. Toplam sayfa yük gelince, bu sürece kullanıcıyı haberdar olarak farketmez. Bir ilerleme çubuğu ile yardımcı olacaktır.

Denenmiş ve gerçek bir strateji beklentilerini yönetmek için her zaman. Bir kullanıcı yapmayın ikinci sizi veya uygulama sanırım. Senin kriterler tarafından, belirli bir sayfa için ortalama işlem süresi ötesine gidecek, eğer, bir 6-ikinci eşik, kullanıcı düğmeyi tıklattığında yüzden önce deyiniz. Bu çok o sitenin kontrolü dışında trafik nedeniyle birkaç saat sürebilir sözü asla, çünkü ne zaman ulaşacağını bilmeden, size bir onay e-posta göndermek için bir Web sitesi için bekliyor gibi.

Benim deneyim, sen kullanıcıya bir şeyler olacaksa birkaç saniye daha alırsak, en azından bazı haber vermelidir. Muhtemelen "Bu zaman alacak bir" gibi bazı fantezi animasyon ve haber ile AJAX kullanın.

Eğer AJAX kullanamazsınız ve PHP komut dosyası yüklemek için, örneğin 10 saniyeden fazla sürüyorsa, bunu optimize etmek için bir yol düşünmeye çalışın.