Lỗi JS thực thi khác nhau trên chrome, firefox, ms Edge

Chuyện là thế này…
E có viết một cái game, trong đó e có dùng hàm setInterval để sau mỗi 5milisecond sẽ cộng thêm x vào vị trí hiện tại của đối tượng ( nôm na là thay đổi vị trí của đối tượng sau mỗi 5milisecond ) nhưng ko hiểu sao trên chrome thì đối tượng thay đổi vị trí rất nhanh nhưng trên firefox và Edge đối tượng thay đổi vị trí rất là chậm ( Edge là chậm nhất).
Ai giải thích giúp e với, e cảm ơn…

các trình duyệt sử dụng js engine khác nhau, mức độ tối ưu khác nhau (và một số thứ khác nhau khác nữa) nên chuyện nó chạy không như nhau là khà bình thường, đặt biệt là với trường hợp 1s gọi tới 200 lệnh liên tục như vậy thì sự khác biệt sẽ dễ cảm nhận hơn nữa (như những gì bạn đã thấy và lên đây hỏi)

3 Likes

Vậy có cách nào để khắc phục ko ạ ???

có lẽ tăng thử lên 30ms xem sao

edit: em xài window. requestAnimationFrame(loopFunction) thay cho setInterval

4 Likes

Vấn đề performance có thể cải thiện được, 5ms là không cần thiết, mắt người chỉ thấy được 24fps mà thôi (23.97) nên set animation thành 40ms (25fps) là hợp lý rồi
Hoặc dùng css cho những cái animation liên quan css, khi đó nó sẽ chạy mượt hơn, cố gắng đưa về css
Search css animation

3 Likes

e cảm ơn nha…

E cảm ơn nha…

Tầm bậy, min fps của game là 30 fps nhé. 24fps chỉ dành cho film thôi.

3 Likes

@kisuluoibieng đanng nói đến 23.97 (24) là tần số quét của mắt người.

2 Likes

m làm mobile thì chuẩn mượt là ~60fps-16ms, nếu làm game xem xét sử dụng framework cho nhàn.

1 Like

@SITUVN.gcd nhưng 30 fps là tối thiểu để game vận hành cho mượt, dưới nữa game sẽ bị chơi giật giật rất khó chịu!

2 Likes

gặp phải game thủ vô chém gió chuyện làm game rồi
bạn biết người ta làm game gì không mà phán 25fps không cho trải nghiệm tốt? chơi pikachu, snake (rắn săn mồi) có cần fps cao không?
dùng dom+js chắc để code thể loại fps hả?

kể cả khi chỉnh interval về 20ms, tức có nghĩa là đối tượng được move 50 lần mỗi giây đi chăng nữa thì có chắc là trình duỵệt nó move được 50 lần không (thậm chí chỉ tính riêng object đó chứ chưa nói tới toàn khung hình có nhiều thứ khác cũng cần có anmation)

bạn này sử dụng dom để làm game thì chắc chỉ là làm cho mục đích học tập là chính, không gợi ý gì đó hay ho thì thôi, bắt bẻ nhảm nhí vậy thì thể hiện được gì bạn ơi?

2 Likes

@kisuluoibieng thời đại công nghệ mà bạn chỉ cần game 24fps thôi thì chán thật đấy. Ah mà chắc mình cũng ko chơi pikachu, snake và ko code web game nên cũng ko rành cái này.

Mình cũng ko biết gì về game đâu, chỉ code game engine với làm game trên UE4 thôi bạn ơi, mời bạn xem qua nhé :slight_smile:

https://www.youtube.com/watch?v=_hPwcmFLgOM

4 Likes

lấy game này game kia ra so với web game code bằng dom/js?

3 Likes

Code chay JS thì theo bạn @tntxtnt là ổn rồi, ko muốn tìm hiểu nhiều thì giảm fps đi là nó khỏi lag.
Muốn tự mày mò ko sài framework thì bạn có thể tìm hiểu về WebGL, webassembly :smiley:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?