Estoy bastante sorprendido de que Safari sea el único navegador en OS X que logra un desplazamiento inercial (casi) perfecto.
Los principales competidores del navegador Safari en OS X son Chrome y Firefox. Ambos no logran ofrecer el mismo desplazamiento suave al que uno está acostumbrado en Safari:
chrome://flags
) o...Options > Advanced
) no ofrece el rendimiento de desplazamiento que ofrece Safari de forma predeterminada.¿Safari utiliza una API privada para ofrecer un desplazamiento suave al que los desarrolladores de Chrome/Firefox no pueden acceder? ¿Cómo es que el desplazamiento de Safari es mucho mejor y los competidores no logran ofrecer un desplazamiento continuo?
Me pregunto especialmente sobre Chrome porque generalmente se adapta a las nuevas funciones de OS X muy rápido.
Es probable que la diferencia tenga que ver con la arquitectura y las opciones de comunicación entre procesos de cada navegador.
Los navegadores web modernos procesan páginas en procesos separados. Apple tiene un marco llamado IOSurface que proporciona una forma simplificada para que un proceso pase una imagen a otro proceso. Este marco se introdujo en Mac OS X 10.6, también conocido como Snow Leopard, para la última versión de QuickTime.
QuickTime usa IOSurface para descargar la decodificación de películas en procesos separados. Sin decodificación que hacer, la aplicación QuickTime Player se ocupa únicamente de la interfaz de usuario y muestra las imágenes proporcionadas por los procesos de decodificación.
Sospecho que Safari ha aprendido de QuickTime y está usando las mismas técnicas. Las páginas web se descargan a otros procesos, se procesan y se devuelven.
¿Podrían Chrome y Firefox hacer lo mismo, absolutamente? El desafío es garantizar que el hilo que trata con el usuario responda rápidamente y no se retrase esperando que se actualice la representación.
Chrome usa procesos separados y parece usar IOSurface en la Mac; este error habla de mejorar el uso de Chrome de IOSurface .
IOSurface es un marco público disponible para cualquier aplicación Mac OS X 10.6+. Sin embargo, hay poca documentación y es específica para Mac.
Todo esto es una conjetura.
steven lu
caballero
steven lu
caballero
steven lu
steven lu
caballero
steven lu
steven lu
caballero
steven lu
Conocido
relleno
dan j
Kelvin