HTML5 및 JavaScript의 무료 게임 엔진. 무료 HTML5 및 JavaScript 게임 엔진 공유 스타일 캐시로 초기 렌더링 속도 향상

이 기사는 2018년 1월 18일에 업데이트되었으며 완전히 최신 내용입니다.
거의 모든 초보자는 웹사이트나 블로그에 사용할 CMS를 선택하는 문제에 직면합니다. 모든 것을 미리 아는 것은 불가능하기 때문에 이것은 이해할 수 있습니다. 그리고 이미 다양한 콘텐츠 관리 시스템이 등장했습니다. 이 리뷰에는 무료 솔루션만 포함되어 있습니다. 그들은 유료 상대보다 결코 열등하지 않으며 때로는 그들과 호의적으로 비교되기도 합니다. 결국, 오픈 소스 코드를 수정하는 것이 훨씬 쉽기 때문에 발견된 모든 취약점이 더 빨리 수정됩니다. 또한 모든 새롭고 대담한 아이디어가 여기에 먼저 나타납니다.

우선, 초점에 따라 시스템을 조건부로 나누어야 합니다. 블로그 제작 전용으로 설계된 CMS뿐만 아니라 본격적인 웹사이트와 미디어 포털을 제작할 수 있는 보다 유연한 시스템도 있습니다. 동시에, 블로깅 시스템은 예를 들어 전체 기업을 위한 일련의 전체 프로젝트를 생성하도록 설계될 수 있습니다. 또한 플랫폼의 개발 기간(길이가 길수록 시스템이 더 잘 개발되고 오류가 줄어듭니다), 커뮤니티의 존재(시스템 설치, 디버깅 또는 사용에 어려움이 발생할 경우 도움이 됩니다)에 주목할 가치가 있습니다. , 성능(모든 시스템이 고부하 프로젝트에 적합한 것은 아닙니다). 그럼 이제 각 CMS를 좀 더 자세히 살펴보겠습니다.

공식 사이트 .

이것은 상당히 오래되고 입증된 엔진 중 하나입니다. 전자 상거래 및 온라인 제품 판매에 적합합니다. VirtueMart와 같은 많은 플러그인을 사용하면 매우 빠르고 짧은 시간에 매장을 열 수 있습니다. 사실, 모든 것을 처음부터 이해하려면 매뉴얼을 읽고 문서와 포럼을 읽는 데 약간의 시간을 투자해야 합니다. 다행스럽게도 Joomla는 러시아어를 포함한 여러 언어로 매우 훌륭한 지원과 대규모 커뮤니티를 보유하고 있습니다.

시스템의 장점은 "즉시 사용 가능한" 다음 기능이 있다는 점입니다.

  • OpenID를 통한 사용자 인증;
  • 시각적 기사 편집자;
  • 편리한 파일 관리;
  • 댓글 시스템 및 스팸 방지
  • 플러그인 및 확장 관리자.

사실 이 외에도 장점이 너무 많아서 한 글에 모두 나열하기는 어렵습니다. 이것이 바로 CMS 평점 및 상위권에서 선두 자리를 차지하는 이유입니다. 그러나 몇 가지 단점도 있습니다. 유연성과 다양한 설정 덕분에 초보자는 이 모든 다양성을 이해하는 데 하루 이상 시간을 투자해야 합니다. 또한 많은 간단한 명함 사이트에서는 해당 기능이 중복될 수 있습니다. 그러나 온라인 상점 및 제품 진열에는 적합합니다.

오타3

공식 사이트 .

얼마 전 꽤 오래된 CMS인 TYPO3가 인터넷에서 인기를 얻기 시작했고 현재는 TOP 5 안에 확고히 자리 잡았습니다. 여기의 사이트 구조는 페이지 트리로 표시됩니다. 각각에는 텍스트, 그림, 표 등 표준 콘텐츠 요소가 포함될 수 있습니다. 이 콘텐츠 관리 시스템은 미리 다운로드하거나 TypoScript로 직접 작성할 수 있는 템플릿을 기반으로 합니다.

TYPO3의 장점:

  • 사용자 권한을 미세 조정하는 기능;
  • 동시에 여러 사이트를 쉽게 유지 관리할 수 있습니다.
  • TER(TYPO3 확장 저장소)의 확장을 사용하는 기능
  • 높은 안전 요구 사항;
  • 맞춤법 검사, 미리보기, 변경 기록이 포함된 고급 텍스트 편집기입니다.

이 시스템의 단점:

  • 템플릿 엔진을 사용하여 사이트 구조를 편집하는 데 어려움이 있습니다.
  • 다양한 콘텐츠(표, 그림)가 포함된 대형 페이지의 렌더링 속도가 느림
  • 온라인 상점을 위한 몇 가지 기성 솔루션

대기업 및 은행 내에서 사용하는 것이 좋습니다. 젊고 작은 사이트에는 적합하지 않을 가능성이 높으며, 개발 및 지원 비용이 사용 이점에 비해 불균형할 수 있습니다.

드루팔

공식 사이트 .

또한 Sony Music과 같은 대규모 기업에서 웹 사이트를 만드는 데 사용되는 매우 인기 있고 널리 퍼진 CMS입니다. 그들은 기업 네트워크를 위한 내부 및 외부 웹사이트를 구축할 수 있는 광범위한 기능 때문에 Drupal을 선택합니다. 단일 사용자 기반을 관리하기 위한 거대한 도구 데이터베이스가 있습니다. 블로그와 포럼 시스템을 구성하는 데 매우 적합합니다. Drupal은 매우 활동적인 개발자 커뮤니티, 방대한 지식 기반 및 라이브 포럼을 보유하고 있습니다. 사이트와 모듈의 설치 및 배포에 관한 질문에 대한 답변을 매우 간단하게 찾을 수 있습니다.

드루팔의 장점:

  • 사용자 및 개발자 커뮤니티의 탁월한 지원;
  • 기능 확장을 용이하게 하는 6000개 이상의 모듈;
  • 사용자 권한을 쉽게 관리하고 집단 블로그와 포럼을 만드세요.

시스템의 단점:

  • 단순한 사이트의 경우 지나치게 복잡할 수 있습니다.
  • 아름답고 기능적인 테마가 전혀 부족합니다.
  • 훈련받지 않은 사용자가 배우기가 어렵습니다.

명함 웹사이트의 경우 이 CMS를 선택하는 것은 절대 권장되지 않지만, 사용자가 자료를 추가하고 댓글을 달 수 있는 중형 및 대형 포털을 구성하는 경우 Drupal은 다른 어떤 것과도 비교할 수 없을 정도로 적합합니다.

MODX

공식 사이트 .

소위 웹 2.0이 형성되기 초기에 등장한 가장 어린 CMS 중 하나(2004년부터 개발이 진행됨)입니다. 아이디어는 사이트의 콘텐츠를 편집하고 추가하는 데 사용자를 참여시키는 것이었습니다. 예를 들어 리뷰, 리뷰, 심지어 전체 기사를 작성합니다. 따라서 우수한 사용자 등록 시스템, AJAX를 사용한 사이트 검색(페이지를 다시 로드하지 않음), 뉴스 피드 및 집단 블로그를 빠르게 확장할 수 있습니다. 단점은 오래 전에 나타났음에도 불구하고 완전히 해결되지 않은 러시아어 인코딩과 관련된 빈번한 문제를 포함합니다. 갤러리, 포럼 또는 전자 상점 구성을 위한 기성 모듈 및 솔루션이 부족합니다.

워드프레스

공식 사이트 .

WordPress가 오랫동안 "블로깅 시스템" 단계를 넘어섰다는 사실에 여전히 의심하는 사람이 있다면 이러한 의심은 버려야 합니다. 이 CMS에서는 소셜 네트워크, 회사 웹사이트, 온라인 상점 및 제품 전시, 포럼, 간단한 명함 사이트 등 다양한 웹사이트가 개발되었습니다.

수천 개의 기성 테마, 플러그인 및 다양한 요구에 맞는 기성 어셈블리 덕분에 WordPress는 TOP 5에서 당연한 자리를 차지했습니다. 강의 및 정보 자료를 생성하는 활발한 개발자 커뮤니티가 있습니다.

워드프레스의 장점:

  • 대규모 개발자 커뮤니티 및 잘 구성된 문서;
  • 사이트를 위한 수천 개의 무료 플러그인 및 테마;
  • 편리한 관리자 패널.

워드프레스의 단점

  • 설치 직후 시작되는 기능은 매우 미약하므로 최소한 4-5개의 플러그인으로 보완해야 합니다.
  • 간단한 설치 후에는 몇 가지 보안 개선이 필요합니다.

실제로 이것은 가장 간단하고 초보자에게 친숙한 시스템 중 하나입니다. 프로그래밍에 대해 전혀 이해하지 않고도 웹사이트를 만들 수 있습니다(내 글을 읽어보세요). 첫 번째 CMS로 적극 권장됩니다. 나중에 해당 기능이 제한되는 것으로 판명되면 사이트를 원하는 다른 엔진으로 쉽게 전송할 수 있습니다.
[대부분의 경우 상위권은 제가 이 글에서 리뷰한 이 5개의 CMS가 차지합니다.

"웹 사이트에 어떤 CMS를 선택할 것인가"라는 질문에 답할 때 인기 있는 엔진이 지속적으로 공격을 받고 있다는 사실에 주의해야 합니다. 그들의 코드는 취약점을 찾아 자신의 이기적인 목적으로 사용할 수 있는 완전히 정직하지 않은 사람들을 포함하여 모든 사람이 사용할 수 있도록 열려 있습니다. 엔진을 즉시 최신 버전으로 업데이트하면 위험을 피할 수 있습니다. 동시에 덜 일반적인 콘텐츠 관리 시스템을 사용하는 경우 어려움이 발생하면 도움을 찾을 곳이 없고 자신에게만 의지할 수 있습니다. 이 요소도 고려하십시오. 행운을 빌어요!

안녕, 하브르! 저는 Lyn Clark이 작성한 초고속 CSS 엔진 내부: Quantum CSS(일명 Stylo) 기사의 번역을 여러분께 소개합니다.


Project Quantum에 대해 들어보셨을 것입니다. 이것은 브라우저 속도를 높이기 위해 Firefox의 내부를 대폭 재작업하는 프로젝트입니다. 우리는 실험적인 서보 브라우저의 개발을 하나씩 구현하고 엔진의 다른 요소를 크게 개선하고 있습니다.


이 프로젝트는 즉석에서 비행기 엔진을 교체하는 것과 비교되었습니다. 우리는 Firefox 구성 요소를 구성 요소별로 변경하고 있으므로 브라우저의 다음 릴리스가 준비되는 대로 해당 효과를 평가할 수 있습니다.



메모 번역자: 컷 아래에 삽화가 많이 있습니다. 모두 클릭할 수 있습니다(더 높은 해상도로 보려면). 번역의 부정확성이나 기타 오류를 발견하시면 댓글이나 개인 메시지로 알려주시면 감사하겠습니다.


Servo의 첫 번째 주요 구성 요소인 새로운 CSS 엔진인 Quantum CSS(이전 Stylo)는 이제 Firefox의 나이틀리 빌드에서 테스트할 수 있습니다. (번역자 주: 댓글에서 그들은 이미 stable 55에 있다고 제안했습니다.). about:config의layout.css.servo.enabled 옵션이 활성화를 담당합니다.


새로운 엔진은 다른 브라우저의 최고의 혁신을 구현합니다.



Quantum CSS는 모든 프로세서 코어에서 작업을 병렬화하여 최신 하드웨어를 활용하여 속도를 최대 2배, 4배, 심지어 18배까지 향상시킵니다.


또한 다른 브라우저의 최신 최적화 기능을 결합하므로 병렬화 없이도 매우 빠릅니다.



그런데 CSS 엔진은 정확히 무슨 일을 할까요? 먼저 CSS 엔진이 일반적으로 무엇이고 브라우저에서 그 위치가 무엇인지 살펴보겠습니다. 그런 다음 Quantum CSS가 전체 작업 속도를 어떻게 높이는지 살펴보겠습니다.

CSS 엔진이란 무엇입니까?

CSS 엔진은 브라우저 렌더링 엔진의 일부입니다. 렌더링 엔진은 사이트의 HTML 및 CSS 파일을 가져와 화면의 픽셀로 변환합니다.



모든 브라우저에는 렌더링 엔진이 있습니다. Chrome에는 Blink가 있고 Edge에는 EdgeHTML이 있으며 Safari에는 WebKit이 있고 Firefox에는 Gecko가 있습니다.


파일을 픽셀로 소화하기 위해 모두 거의 동일한 작업을 수행합니다.


1) 파일을 DOM을 포함하여 브라우저에서 읽을 수 있는 객체로 구문 분석합니다. 이 단계에서 DOM은 페이지 구조와 요소 간의 상위 관계에 대해 알고 있지만 해당 요소가 어떤 모습이어야 하는지는 모릅니다.



2) 요소의 모양을 결정합니다. 각 DOM 노드에 대해 CSS 엔진은 어떤 CSS 규칙을 적용할지 파악합니다. 그런 다음 각 CSS 속성의 값을 정의합니다. 계산된 스타일을 첨부하여 DOM 트리의 각 노드에 스타일을 지정합니다.



3) 각 노드의 크기와 위치를 결정합니다. 화면에 표시해야 하는 모든 항목에 대해 상자가 생성됩니다. 이는 DOM 노드뿐만 아니라 그 내부에 있을 수 있는 내용도 나타냅니다. 예를 들어 텍스트 줄입니다.



4) 드로잉 블록. 여러 레이어에서 발생할 수 있습니다. 나는 그것을 여러 장의 반투명 종이에 손으로 그린 ​​오래된 애니메이션처럼 상상합니다. 이렇게 하면 다른 레이어를 다시 그릴 필요 없이 한 레이어를 변경할 수 있습니다.



5) 이전에 필요한 작성기 속성(예: 변환)을 레이어에 적용한 후 레이어를 하나의 이미지로 결합합니다. 마치 여러 겹을 합쳐서 사진을 찍는 것과 같습니다. 그러면 이 이미지가 화면에 표시됩니다.



즉, 스타일 계산을 시작하기 전에 CSS 엔진의 입력은 다음과 같습니다.

  • DOM 트리
  • 스타일 규칙 목록

따라서 각 DOM 노드의 스타일을 차례로 정의합니다. 스타일 시트에 설정되지 않은 경우에도 모든 CSS 속성에 값이 할당됩니다.


모든 항목을 필수로 입력하는 양식을 작성하는 것이라고 생각합니다. 각 DOM 노드에 대해 이 양식을 작성해야 합니다.



이를 위해 CSS 엔진은 다음 두 가지 작업을 수행해야 합니다.

  • 노드에 적용되어야 하는 규칙을 선택합니다(선택기 일치).
  • 누락된 값을 모두 표준 값으로 채우거나 상위 값을 상속합니다(캐스케이드).

선택기 매핑

시작하려면 노드에 적용되는 모든 규칙을 목록으로 선택합니다. 일치하는 규칙이 두 개 이상 있을 수 있으므로 동일한 속성에 대한 여러 정의가 가능합니다.



또한 브라우저 자체는 일부 표준 스타일(사용자 에이전트 스타일 시트)을 추가합니다. 그렇다면 CSS 엔진은 사용할 값을 어떻게 결정합니까?


이것이 바로 "특이성 규칙"이 도움이 되는 부분입니다. CSS 엔진은 정의 테이블을 생성한 다음 이를 다른 열로 정렬합니다.



가장 구체적인 규칙이 승리합니다. 이러한 테이블을 기반으로 CSS 엔진은 테이블에 설정된 모든 값을 양식에 입력합니다.



나머지는 캐스케이딩을 통해 계산됩니다.

계단식

계단식 배열을 사용하면 CSS를 더 쉽게 작성하고 유지 관리할 수 있습니다. 덕분에 body 의 color 속성을 설정할 수 있고 p ,span ,li 요소의 텍스트 색상이 동일하다는 것을 알 수 있습니다(직접 재정의하지 않는 한).


CSS 엔진은 양식에서 빈 필드를 확인합니다. 속성이 기본적으로 상속되면 CSS 엔진은 트리 위로 올라가서 이 속성의 값이 상위 요소에 설정되어 있는지 확인합니다. 값의 조상 중 누구도 이를 정의하지 않거나 상속되지 않은 경우 기본값이 설정됩니다.



이제 특정 DOM 노드에 대한 모든 스타일이 계산되었으며 양식이 작성되었습니다.

참고: 스타일 구조 공유

설명된 양식은 약간 단순화되었습니다. CSS에는 수백 가지 속성이 있습니다. CSS 엔진이 모든 DOM 노드의 모든 속성 값을 저장했다면 사용 가능한 모든 메모리를 빠르게 소모하게 됩니다.


대신 엔진은 일반적으로 스타일 구조체 공유를 사용합니다. 일반적으로 함께 사용되는 값(예: 글꼴 속성)을 스타일 구조라는 다른 개체에 저장합니다. 또한 계산된 스타일 개체에는 모든 속성을 하나의 개체에 저장하는 대신 포인터만 포함됩니다. 각 속성 카테고리에는 필수 값이 있는 스타일 구조에 대한 포인터가 있습니다.



이렇게 하면 메모리와 시간이 모두 절약됩니다. 유사한 스타일을 가진 노드는 공통 속성에 대해 동일한 스타일 구조를 가리킬 수 있습니다. 그리고 많은 속성이 상속되므로 부모는 자신의 값을 재정의하지 않는 모든 자식 노드와 구조를 공유할 수 있습니다.

그렇다면 어떻게 속도를 높일 수 있을까요?

최적화되지 않은 스타일 계산 프로세스는 다음과 같습니다.



여기서는 꽤 많은 일이 진행되고 있습니다. 그리고 페이지가 처음 로드되는 순간에만 그런 것이 아닙니다. 그리고 페이지와 상호 작용할 때 요소 위로 마우스를 가져가거나 DOM을 변경하면 스타일이 다시 계산됩니다.



이는 CSS 스타일시트 계산이 최적화를 위한 훌륭한 후보라는 것을 의미합니다... 그리고 지난 20년 동안 브라우저는 다양한 최적화 전략을 테스트해 왔습니다. Quantum CSS는 이들 중 최고를 결합하여 새로운 초고속 엔진을 만들려고 노력합니다.


이 모든 것이 어떻게 함께 작동하는지 살펴보겠습니다.

병렬화

Quantum CSS의 모체인 Servo 프로젝트는 웹 페이지 렌더링 프로세스의 모든 것을 병렬화하려고 시도하는 실험적인 브라우저입니다. 무슨 뜻이에요?


컴퓨터를 뇌에 비유할 수 있습니다. 사고를 담당하는 요소(ALU)가 있습니다. 그 근처에는 단기 메모리(레지스터)와 같은 것이 있으며 후자는 중앙 프로세서에 함께 그룹화됩니다. 게다가 장기기억(RAM)도 있다.



초기 컴퓨터는 한 번에 하나의 생각만 생각할 수 있었습니다. 그러나 지난 수십 년 동안 프로세서가 변경되어 이제 여러 ALU와 레지스터가 코어로 그룹화되었습니다. 이제 프로세서는 동시에 여러 가지 생각을 동시에 생각할 수 있습니다.



Quantum CSS는 다양한 코어의 다양한 DOM 노드에 대한 스타일 계산을 분리하여 이러한 이점을 활용합니다.


쉬워 보일 수도 있습니다... 트리의 가지를 분할하여 다른 코어에서 처리하면 됩니다. 실제로는 여러 가지 이유로 모든 것이 훨씬 더 복잡합니다. 첫 번째 이유는 DOM 트리가 종종 고르지 않기 때문입니다. 즉, 일부 코어는 다른 코어보다 훨씬 더 많은 작업을 받습니다.



작업을 보다 균등하게 분배하기 위해 Quantum CSS는 작업 훔치기라는 기술을 사용합니다. DOM 노드가 처리되면 프로그램은 직계 자식을 가져와 하나 이상의 "작업 단위"로 분할합니다. 이러한 작업 단위는 대기열에 추가됩니다.



코어가 대기열의 모든 작업을 완료하면 다른 대기열에서 작업을 찾을 수 있습니다. 이런 방식으로 전체 트리를 통과하여 사전 평가 없이 작업을 균등하게 분배합니다.



이는 대부분의 브라우저에서 올바르게 구현하기 어려울 것입니다. 병렬화는 매우 어려운 작업이며 CSS 엔진 자체는 상당히 복잡합니다. 또한 렌더링 엔진의 가장 복잡한 두 부분인 DOM과 마크업 사이에 위치합니다. 일반적으로 실수하기 쉽고 병렬화를 수행하면 "데이터 경쟁"이라는 잡기 어려운 버그가 발생할 수 있습니다. 이러한 버그에 대해서는 다른 기사에서 더 자세히 설명합니다(러시아어로 번역된 기사도 있습니다).


수십만 명의 기여자의 편집 내용을 수락하는 경우 어떻게 두려움 없이 동시성을 적용할 수 있습니까? 이것이 바로 Rust가 있는 이유입니다.



Rust를 사용하면 데이터 경합이 없는지 정적으로 확인할 수 있습니다. 즉, 처음부터 코드에 버그를 허용하지 않음으로써 잡기 어려운 버그를 방지할 수 있습니다. 컴파일러는 이를 허용하지 않습니다. 나는 미래의 기사에서 이에 대해 더 많이 쓸 것입니다. 당신은 또한 볼 수 있습니다 Rust의 동시성에 대한 소개 영상아니면 이거 "직업 도용"에 대한 더 자세한 대화.


이 모든 것이 문제를 크게 단순화합니다. 이제 CSS 스타일 계산을 효율적으로 병렬로 구현하는 데 방해가 되는 것은 거의 없습니다. 이는 선형 가속도에 접근할 수 있음을 의미합니다. 프로세서가 4코어인 경우 병렬화를 통해 속도가 거의 4배 증가합니다.

규칙 트리를 사용하여 재계산 가속화

각 DOM 노드에 대해 CSS 엔진은 모든 규칙을 거쳐 선택기 일치를 수행해야 합니다. 대부분의 노드에서 해당 선택기는 자주 변경되지 않습니다. 예를 들어, 사용자가 요소 위에 마우스를 올리면 해당 요소에 해당하는 규칙이 변경될 수 있습니다. 속성 상속을 처리하려면 모든 하위 항목의 스타일을 다시 계산해야 합니다. 그러나 이러한 자손에 해당하는 규칙은 아마도 변경되지 않을 것입니다.


선택자를 다시 일치시킬 필요가 없도록 어떤 규칙이 해당 하위 요소와 일치하는지 기억하는 것이 좋을 것입니다. 그리고 이전 버전의 Firefox에서 제공되는 규칙 트리가 바로 그 일을 합니다.


CSS 엔진은 요소와 일치하는 선택기를 선택한 다음 특정성을 기준으로 정렬합니다. 결과는 연결된 규칙 목록입니다.


이 목록이 트리에 추가됩니다.



CSS 엔진은 트리의 분기 수를 최소화하고 가능할 때마다 이를 재사용하려고 합니다.


목록에 있는 대부분의 선택기가 기존 분기와 일치하면 이를 따릅니다. 그러나 목록의 다음 규칙이 기존 분기의 규칙과 일치하지 않는 지점에 도달할 수 있습니다. 이 경우에만 새 분기가 생성됩니다.



DOM 노드는 마지막에 추가된 규칙(이 예에서는 div#warning)에 대한 포인터를 받습니다. 가장 구체적입니다.


스타일을 다시 계산할 때 엔진은 상위 요소의 규칙 변경이 하위 요소의 규칙에 영향을 미칠 수 있는지 확인하기 위해 빠른 검사를 수행합니다. 그렇지 않은 경우 모든 하위 항목에 대해 엔진은 트리의 해당 규칙에 대한 포인터를 간단히 사용할 수 있습니다. 즉, 선택기 일치 및 정렬을 완전히 건너뜁니다.



따라서 스타일을 다시 계산할 때 시간을 절약하는 데 도움이 되지만 초기 계산에는 여전히 노동 집약적입니다. 노드가 10,000개인 경우 선택기 일치를 10,000번 수행해야 합니다. 하지만 이 속도를 높이는 방법도 있습니다.

공유 스타일 캐시로 초기 렌더링 속도 향상

수천 개의 노드가 있는 페이지를 상상해 보세요. 그들 중 다수는 동일한 규칙을 따를 것입니다. 예를 들어, 긴 Wikipedia 페이지를 상상해 보십시오... 주요 콘텐츠 단락은 완전히 동일한 스타일 규칙과 완전히 동일한 계산 스타일을 가져야 합니다.


최적화가 없으면 CSS 엔진은 선택기를 일치시키고 각 단락의 스타일을 개별적으로 계산해야 합니다. 그러나 모든 단락의 스타일이 동일하다는 것을 증명할 수 있는 방법이 있다면 엔진은 해당 작업을 한 번만 수행하고 각 노드에서 동일한 계산된 스타일을 가리킬 수 있습니다.


이는 Safari 및 Chrome에서 영감을 받아 일반 규칙 캐시가 수행하는 작업입니다. 요소를 처리한 후 계산된 스타일이 캐시에 저장됩니다. 다음으로, 다음 요소의 스타일 계산을 시작하기 전에 캐시에서 사용할 수 있는 항목이 있는지 확인하기 위해 여러 검사가 수행됩니다.


점검 내용은 다음과 같습니다.

  • 2개의 노드가 동일한 ID, 클래스 등을 가지고 있습니까? 그렇다면 동일한 규칙을 준수하게 됩니다.
  • 선택기 기반이 아닌 모든 것(인라인 스타일 등)에 대해 동일한 의미를 갖습니까? 그렇다면 위의 규칙은 재정의되지 않거나 두 규칙 모두에 대해 동일한 방식으로 재정의됩니다.
  • 두 항목의 상위 항목이 계산된 스타일의 동일한 개체를 가리키도록 하세요. 그렇다면 상속된 값도 동일합니다.


이러한 검사는 처음부터 공유 스타일 캐시의 초기 버전에서 구현되었습니다. 그러나 스타일이 일치하지 않는 작은 상황이 많이 있습니다. 예를 들어 CSS 규칙에서:first-child 선택기를 사용하는 경우 위의 확인 항목에서 다르게 명시되어 있더라도 두 단락의 스타일이 일치하지 않을 수 있습니다.


WebKit과 Blink는 이러한 상황에서 포기하고 공통 스타일 캐시를 사용하지 않습니다. 그리고 더 많은 사이트가 이러한 최신 선택기를 사용함에 따라 최적화의 유용성이 떨어지기 때문에 Blink 팀은 최근 이 기능을 완전히 제거했습니다. 그러나 이러한 모든 업데이트와 전반적인 스타일 캐시를 따라잡는 것이 가능하다는 것이 밝혀졌습니다.


Quantum CSS에서는 이상한 선택기를 모두 수집하고 DOM 노드에 적용되는지 확인합니다. 그런 다음 이 검사 결과를 각 선택기에 대해 1과 0으로 저장합니다. 두 요소에 동일한 1과 0 집합이 있으면 두 요소가 정확히 일치한다는 것을 알 수 있습니다.



DOM 노드가 이미 계산된 스타일을 사용할 수 있는 경우 기본적으로 거의 모든 작업을 건너뜁니다. 페이지에는 동일한 스타일을 가진 많은 노드가 있는 경우가 많으므로 공유 스타일 캐시는 메모리를 절약하고 작업 속도를 크게 향상시킵니다.


결론

이는 Servo에서 Firefox로의 첫 번째 주요 기술 이전입니다. 우리는 최신 고성능 Rust 코드를 Firefox 코어로 가져오는 방법에 대해 많은 것을 배웠습니다.


우리는 Project Quantum의 상당 부분을 베타 버전으로 사용할 수 있게 되어 매우 기쁩니다. 시도해 보시고, 오류가 있을 경우 신고해 주시면 감사하겠습니다.

린 클라크 소개

Lin은 Mozilla 개발자 관계 팀의 엔지니어입니다. JavaScript, WebAssembly, Rust 및 Servo와 함께 작동합니다. 그는 또한 코드 만화를 그립니다.

태그: 태그 추가

안녕하세요, 블로그 사이트 독자 여러분. 오늘 저는 웹사이트 엔진, 과학적으로 말하면 CMS(콘텐츠 관리 시스템)에 대해 이야기하고 싶습니다.

기본적으로 이는 웹사이트 생성 및 유지 관리를 크게 단순화하는 웹 서버용 프로그램입니다. 글쎄, 웹 사이트 자체에서 허용됩니다 (직접 만들고 프로모션에 돈을 쓰지 않는 경우).

이 등급에 자원을 추가하려면 표 오른쪽 위의 해당 버튼을 사용하지 마십시오.

그런데 조금 어렵다고 생각되시면 보시면 됩니다. 웹 스튜디오 평가, 동일한 리소스에 있습니다. "작업" 열의 링크를 클릭하면 이 스튜디오에서 만든 프로젝트를 볼 수 있습니다.

이는 RuNet 사용자가 사용하는 엔진(여기서는 Joomla뿐만 아니라 일반적으로 널리 사용되는 모든 CMS)에서 사용되는 CMS 버전(새롭거나 오래된 버전)에 대한 통계의 대략적인 모습입니다.

Joomla에서는 일반 웹사이트 외에도 .

아마도 배우기 가장 쉬운 무료 엔진은 워드프레스. 물론 다소 좁은 틈새 시장(블로그 생성 및 소개)에 주로 사용되지만 원하는 경우 웹사이트, 포럼, 갤러리를 구현하는 데 사용할 수도 있습니다. 하지만 우선 WordPress는 매우 기능적인 블로그 CMS입니다.

사이트는 WordPress의 통제 하에 실행됩니다(그러나 위에서 언급한 Yandex 조언에 따라 사용된 엔진과 해당 버전을 숨겨야 하기 때문에 이것은 비밀입니다). 나는 섹션에서 이 엔진 작업의 미묘함과 뉘앙스에 대해, 그리고 섹션에서 엔진 확장에 대해 글을 쓰고 계속해서 쓰고 있습니다.

위의 CMS 속도 그래프로 판단하면 워드프레스가 질주하고 있는데 개인적으로는 느껴지지 않았습니다. 일반적으로 WordPress는 터무니없는 . 사실, 시간이 조금 걸리지만 블로그가 매우 빠르고 쉬워질 수 있습니다. 같은 이름의 칼럼이 늘어난 것에 대해 글을 썼습니다.

이제 내 블로그는 하루에 20~25,000명의 방문자가 호스팅되고 있으며 특히 템플릿을 마무리하고 최적화할 수 있는 모든 것을 최적화한 후 WordPress의 속도에 여전히 만족합니다. 그러나 추가 최적화가 있든 없든 많은 수의 플러그인을 사용하면 WordPress는 다소 무거운 괴물이 됩니다.

다양한 목적으로 사용되는 무료 CMS가 아직 많이 있다는 것은 분명합니다. 이는 동일한 Drupal 또는 DLE(DataLife Engine)이며 대부분의 경우 이상적인 CMS가 존재하지 않기 때문에 사용이 정당화되지만 바로 위에서 언급한 WordPress 및 Joomla가 가장 인기가 있습니다. 그 이유는 초보 사용자를 위한 상당히 단순한 디자인과 명확성 때문일 수 있습니다.

어떤 유료 엔진이 가장 흥미롭나요?

그다지 비싸지 않고 상당히 빠른 유료 CMS로 제시할 수 있는 또 다른 예는 다음과 같습니다. 에스빌더. 이 엔진에서 웹사이트를 만드는 방법을 이해하는 데는 시간이 많이 걸리지 않을 것입니다. 왜냐하면... 진입 장벽이 상당히 낮습니다(그들이 말했듯이 직관적입니다). 이 시스템은 최종 사용자를 위해 작성되었습니다. 전혀 준비가 되어 있지 않고 웹마스터링 경험도 없습니다(Word에서 작동할 수 있으며 괜찮습니다).

S.Builder는 매우 유연하여 거의 모든 작업을 수행할 수 있지만, 예를 들어 거의 모든 작업을 수행할 수 있는 Drupal과 달리 S.Builder를 사용하면 코드에 전혀 들어가지 않고도 이 모든 작업을 수행할 수 있습니다. 귀하의 필요에 따른 강력한 모듈 디자이너).

글쎄요, 앞서 말씀드린 것처럼 이 CMS는 가장 빠른 엔진 중 하나 PHP로도 작성되었지만 부하를 꽤 잘 유지합니다. 이는 코드의 청결도(처음부터 작성됨)와 캐싱 성능이 좋기 때문일 가능성이 높습니다.

온라인과 오프라인 모두에서 S.Builder를 무료로 사용해 볼 수 있습니다. 첫 번째 경우에는 "온라인 데모 버전" 페이지로 이동해야 하며 이 CMS에 임시 사이트를 생성하여 "펜 사용해 보기"에 모든 모듈을 사용할 수 있습니다. 온라인 테스트가 적합하지 않은 경우 "CMS 다운로드" 페이지에서 이 엔진의 모든 기능을 갖춘 완전 무료 오프라인 버전인 "로컬 컴퓨터에 설치하기 위한 CMS 평가판"을 다운로드할 수 있습니다.

마지막으로, 질문에 상당히 상세한 답변을 제공한 매우 유명한 SEO 회사 Ashmanov and Partners의 전문 옵티마이저에 대한 의견을 전하고 싶습니다. 어떤 CMS가 더 좋나요?:

추신 가끔은 당신이 알고 싶어 이 사이트나 저 사이트는 어떤 엔진에서 실행되나요?. 이것은 아주 간단하고 우아하게 이루어질 수 있다는 것이 밝혀졌습니다. 기사에서 방금 Wappalyzer라는 플러그인을 언급했습니다. 매우 흥미로운 것입니다.

온라인 상점에는 어떤 엔진을 선택해야 합니까? 이것은 대부분의 야심 찬 기업가들이 묻는 질문입니다. 플랫폼이 너무 많아서 때로는 탐색하기가 매우 어려울 수 있습니다. 이 리뷰에서는 최고의 CMS를 살펴볼 것입니다. 사용자는 자신의 웹 리소스에 가장 적합한 엔진을 선택할 수 있습니다.

최고의 CMS 시스템

대부분의 회사는 더 친숙하고 작업하기 쉬운 플랫폼에서 웹사이트를 제공합니다. 이러한 엔진은 고객 요구 사항을 충족하지 못하는 경우가 많습니다. 플랫폼 제한에 직면하지 않으려면 웹사이트 제작에 가장 적합한 CMS를 알아야 합니다. 올바른 엔진을 선택하면 웹 리소스의 성공이 보장됩니다. 플랫폼에는 상업용 제품과 무료 제품이라는 두 가지 범주가 있습니다.

첫 번째 유형의 엔진은 라이센스 및 추가 기능 판매로 수익을 창출할 목적으로 만들어졌습니다. 이러한 시스템은 작업의 질과 인기를 높입니다. 거의 모든 유용한 모듈이 지급됩니다. 초보 기업가는 항상 상업적으로 최고의 CMS를 구매할 여력이 없습니다. 그들을 위해 무료 엔진이 만들어졌습니다.

시스템 "1C-Bitrix"

이 플랫폼은 온라인 상점을 위한 최고의 CMS입니다. 그녀는 왜 그렇게 인기를 얻었습니까? 엔진은 광범위한 1C 데이터베이스와 함께 작동합니다. 원하는 경우 사용자는 구매자를 위한 보너스 프로그램을 설정하고 법인에 대해 다른 요율을 지정할 수 있습니다. 이 플랫폼은 대규모 포털, 정보 리소스 및 기타 서비스를 만드는 데 사용됩니다.

이 CMS에서 만들어진 웹사이트는 작업 품질, 다수의 추가 모듈, 해커 공격에 대한 안정적인 보호, 여러 관리자 간의 권한 공유 기능으로 인해 다른 웹사이트보다 돋보입니다. 시스템에는 상당한 투자가 필요합니다. 따라서 대규모 프로젝트 생성에만 1C-Bitrix 플랫폼을 사용하는 것이 좋습니다.

마젠토

이 시스템은 무료 상품 중 온라인 상점에 가장 적합한 CMS입니다. 이 엔진을 사용하여 인터넷에 15만 개가 넘는 웹사이트가 만들어졌습니다. 플랫폼은 세 가지 버전으로 제공됩니다. 커뮤니티 에디션은 무료입니다. 관리자 패널은 매우 편리합니다.

원하는 경우 사용자 권한을 차별화할 수 있습니다. 러시아어로 된 인터페이스. 질문에 대한 답변은 개발자 커뮤니티에서 찾을 수 있습니다. 사용자는 세부 보고서 생성 및 할인 쿠폰 추가 옵션에 액세스할 수 있습니다. 클라이언트는 1C 데이터베이스로 작업할 수 있습니다.

제품은 Yandex.Market으로 가져옵니다. 다양한 제품 필터가 있습니다. 원하는 경우 고객에게 광고 메시지를 보내고 소셜 네트워크에 연결할 수 있습니다. 개발자는 고객에게 온라인 상점을 위한 제휴 프로그램을 만들도록 제안합니다. 관리자는 하나의 계정으로 여러 프로젝트를 관리할 수 있습니다.

마젠토의 단점

단점은 러시아 결제 시스템 및 배송 서비스와의 통합이 부족하다는 것입니다. 이 문제는 유료 모듈을 설치하고 기존 모듈을 편집하면 해결될 수 있습니다. 온라인 상점을 시작할 때 숙련된 프로그래머의 서비스를 이용해야 합니다.

엔진은 많은 양의 서버 리소스를 소비합니다. 플랫폼은 대규모 온라인 상점을 만드는 데에만 사용해야 합니다. 전자상거래에 유용한 모듈이 지급됩니다. 그들 중 일부는 가격이 매우 비쌉니다.

줌라

플랫폼은 순위에서 3위를 차지했습니다. 제품은 품질로 구별됩니다. 사용자가 최고의 CMS 엔진을 찾고 있다면 Joomla에 주목해야 합니다. 클라이언트는 추가 모듈과 플러그인을 사용하여 광범위한 툴킷을 확장할 수 있습니다. 서비스 작업에 대한 높은 보안이 보장됩니다.

사용자는 관리자를 위한 다단계 인증을 연결하고 중재자의 권한을 분할하는 옵션에 접근할 수 있습니다. 사이트 모양 변경은 광범위한 카탈로그의 기성 템플릿을 사용하여 수행됩니다. 원하는 경우 사용자 정의 레이아웃을 생성할 수 있습니다. 많은 고객은 이것이 많은 요소를 사용자 정의할 수 있기 때문에 매장에 가장 적합한 CMS라고 믿습니다. 이 엔진을 기반으로 하는 웹사이트는 유연한 구조를 가지고 있습니다.

Joomla용 추가 구성요소

개발자들은 지속적으로 업데이트를 출시하고 있습니다. 처음에 이 플랫폼은 기업 웹 리소스, 블로그, 명함 페이지용으로 만들어졌습니다. 이제 엔진은 온라인 상점 및 소셜 플랫폼에서 작동합니다. 사이트에 제품을 추가하려면 추가 구성 요소를 다운로드해야 합니다. 가장 일반적인 스크립트는 VirtueMart와 JoomShopping입니다.

필요한 경우 추가 모듈이 설치됩니다. VirtueMart를 사용하면 사용자는 사이트를 1C 데이터베이스와 통합하고, 널리 사용되는 결제 시스템을 연결하고, 제품 가져오기/내보내기를 구성할 수 있습니다. 추가 구성 요소는 중소 규모 온라인 상점을 시작하는 데 적합합니다. VirtueMart는 필요한 기능과 적절한 보안 시스템이 없기 때문에 대규모 포털을 만들 때 사용되지 않습니다.

드루팔

이 플랫폼은 복잡한 웹사이트와 전문 프로그래머를 대상으로 합니다. 소프트웨어 작업에는 경험과 적절한 교육이 필요합니다. 시스템은 파트너 사이트와 동기화됩니다. 사용자는 짧은 주소를 선택하고, 템플릿 테마를 사용하고, 유사한 요소(단일 사용자 기반)로 웹 리소스를 생성할 수 있습니다. 다국어 번역 기능을 사용할 수 있습니다.

이 엔진은 대규모 온라인 상점과 커뮤니티에 적합합니다. 다른 경우에는 비용이 정당화되지 않습니다. 플랫폼을 이용하시려면 Ubercart를 설치하셔야 합니다. 이 추가 구성 요소는 사실상 VirtueMart 스크립트와 다르지 않습니다. 최고의 무료 CMS Magento와 Joomla는 Drupal보다 약간 더 일반적이고 배우고 사용자 정의하기가 덜 어렵기 때문에 순위에서 1위를 차지했습니다.

MODX

이 플랫폼은 거의 모든 서버에서 실행될 수 있으며 다양한 브라우저와 상호 작용할 수 있습니다. 소프트웨어는 라이센스에 따라 배포됩니다. 엔진은 다양한 유형의 웹사이트를 만드는 데 사용됩니다. 플랫폼은 애플리케이션 개발 환경이기도 합니다. 서버 리소스를 요구하지 않습니다.

엔진을 설치하고 구성하는 것은 어렵지 않습니다. 단점은 CIS 국가에서 보급률이 낮고 해당 지역에서 본격적인 온라인 상점을 시작하는 데 필요한 기능이 부족하다는 것입니다. 많은 사용자는 엔진 작업 시 웹 리소스 보안에 문제가 발생한다고 지적합니다.

오픈카트

상업용 또는 완전 무료 CMS 중 어느 것이 더 낫습니까? OpenCart 플랫폼은 무료 소프트웨어가 어떻게 고객의 기대를 뛰어넘을 수 있는지 보여주는 예입니다. 이 엔진은 소규모 프로젝트에 가장 적합한 솔루션입니다. 플랫폼은 설치 및 구성이 쉽습니다. 엔진은 서버 리소스를 요구하지 않습니다.

수많은 모듈을 사용하면 거의 모든 필수 기능을 온라인 상점에 추가할 수 있습니다. 러시아어를 사용하는 커뮤니티의 개발자가 발생할 수 있는 모든 문제를 해결하는 데 도움을 드릴 것입니다. 원하는 경우 내장 모듈 설치 프로그램을 사용할 수 있습니다. 처음에는 플랫폼이 CIS 시장에 초점을 맞추지 않았습니다. 이제 추가 기능이 포함된 어셈블리를 찾을 수 있습니다.

개발자는 결제 및 배송 방법을 업데이트하고 다양한 필터를 추가했습니다. 가장 널리 사용되는 어셈블리에는 ocStore 및 MaxyStore가 포함됩니다. 클라이언트는 언제든지 필요한 추가 기능을 통해 자신만의 버전을 만들 수 있습니다. 사용자는 각 상품에 대한 키워드와 메타태그를 별도로 지정하는 기능에 접근할 수 있습니다. 단점은 제품 수가 많을 때 시스템이 정지되고 모듈이 많아 비용이 많이 든다는 점입니다.

프레스타샵

개발자들은 2007년에 이 플랫폼을 만들었습니다. 이 엔진은 중소 규모의 온라인 상점에 적합합니다. OpenCart와 마찬가지로 PrestaShop 플랫폼에는 인상적인 기능이 있습니다. 러시아 결제 시스템을 사용하려면 추가 모듈을 추가해야 합니다. 엔진은 서버 리소스를 전혀 요구하지 않습니다.

2011년 PrestaShop은 최고의 무료 전자상거래 플랫폼으로 선정되었습니다. OpenCart와 달리 엔진에는 공식 개발자 지원이 없습니다. 따라서 사용자가 원하는 만큼의 추가 모듈이 없습니다. 플랫폼의 기본 버전은 OpenCart보다 더 많은 리소스를 사용합니다. 추가 모듈 비용은 Magento보다 훨씬 저렴합니다.

UMI.CMS

이 플랫폼은 반응형 디자인과 비용 효율성을 특징으로 합니다. 클라이언트는 작업할 언어를 선택하고, 템플릿 테마를 설정하고, 평균 청구서 기반 데이터와 같은 통계 정보를 추적할 수 있습니다.

워드프레스

"최고의 CMS"라는 주제를 이어가면서 이 엔진을 언급해야겠습니다. 플랫폼은 간단하고 이해하기 쉬우면서도 동시에 기능적입니다. 엔진을 작동하는 데 기술 지식이 필요하지 않습니다. 전문가도 간단한 인터페이스에 만족할 것입니다. 질문에 대한 답변은 지침에서 찾을 수 있습니다.

이 플랫폼은 정보를 빠르게 추가해야 하는 블로그, 뉴스 리소스 및 기타 포털을 위해 만들어졌습니다. 기능 확장을 위한 플러그인을 저렴한 가격에 구입할 수 있습니다. 개발자는 WordPress 엔진을 사용하여 온라인 상점을 생성하기 위한 10개 이상의 추가 구성 요소를 제공합니다. 가장 인기 있는 것은 WooCommerce 플러그인입니다. 이를 기반으로 본격적인 온라인 상점을 시작하는 것은 매우 어렵습니다.

업데이트가 필요하지 않은 제품 카드는 100개까지 추가할 수 있습니다. 플랫폼은 배우기 쉽습니다. 이 시스템은 WordPress 웹사이트에 블로그를 운영하는 초보자에게 적합합니다. 단점 중에는 1C, 러시아 결제 시스템 및 배송 서비스와의 통합이 부족하다는 점에 유의해야 합니다. 플러그인 설치 후 템플릿과 충돌이 발생할 수 있습니다.

넷캣

플랫폼은 모바일 버전에서 기회를 제공합니다. 반응형 디자인이 지원됩니다. 최고의 CMS는 검색 엔진 홍보와 유용한 서비스와의 웹사이트 통합을 위한 우수한 기능을 갖추고 있어야 합니다. 이 엔진은 모든 요구 사항을 충족합니다. 인터페이스는 직관적입니다.

이 플랫폼은 1C 데이터베이스 및 전자 결제 시스템과 함께 작동합니다. 플랫폼 작업 시 복잡한 기술 솔루션을 사용할 필요가 없습니다. 인터페이스는 사용자용과 개발자용으로 구분할 수 있습니다.

호스트CMS

엔진은 호스팅 및 서버를 요구하지 않습니다. 이 플랫폼은 SEO를 위한 최고의 CMS입니다. 사용자에게는 짧은 페이지 주소 생성, 메타 태그 지정 등의 옵션이 있습니다. 엔진은 트래픽이 많은 웹 리소스에서 잘 작동합니다. 플랫폼은 1C 시스템과 함께 작동합니다.

라이센스 비용은 6,000 루블입니다. 클라이언트는 추가 모듈을 설치하여 기능을 확장할 수 있는 기능을 갖춘 상당히 기능적인 플랫폼을 받습니다.

CS-카트

최고의 CMS를 선택할 때 많은 사용자가 이 엔진의 장점을 주목합니다. 소프트웨어 제작자는 고객에게 다양한 도구를 제공합니다. 이 플랫폼은 편리한 인터넷 마케팅 구성, 좋은 주문 작업 형식, 리소스 SEO 최적화, 1C 및 Yandex.Market 서비스와의 통합으로 구별됩니다. 사용자는 적응형 디자인을 생성하고 간단히 재료를 추가하는 옵션에 액세스할 수 있습니다.

아미로.CMS

이 플랫폼을 유니버설이라고 합니다. 이 엔진은 다양한 수준의 복잡성을 지닌 전문적인 리소스를 생성하는 데 적합합니다. 개발자는 기능을 확장하는 60개 이상의 추가 모듈을 제공합니다. 사용자는 거의 모든 유형의 고품질 웹사이트를 시작할 수 있습니다.

LP발전기

온라인 웹 페이지 생성기는 초보자와 전문가를 위한 훌륭한 솔루션입니다. 엔진을 사용하면 명함 웹사이트나 작은 상점을 만들 수 있습니다. 일부 사용자는 단순히 제품/서비스를 제시하기 위해 자료를 추가합니다. 고객은 편리한 편집기와 LPStore에 있는 수백 개의 템플릿을 활용할 수 있습니다.

사용자에게는 새 도메인을 연결하고 사이트를 유용한 서비스와 동기화하는 옵션이 있습니다. 원하는 경우 레이아웃을 다시 작성할 수 있습니다. 개발자는 SEO 최적화를 위한 도구도 제공합니다.

CSS3 및 JavaScript와 함께 HTML5는 개발자에게 3D, 애니메이션, 캔버스, 수학, 색상, 사운드, WebGL을 사용하여 게임을 만들 수 있는 충분한 기회를 제공합니다. HTML5의 가장 확실한 장점 중 하나는 플랫폼과 일반적으로 하드웨어로부터의 독립성입니다.

자세히 살펴보면 엔진에서 제공하는 추가 기능을 식별할 수 있습니다. 일부 일반 작업 단순화 또는 리소스 로딩, 형식화된 입력, 물리, 사운드, 비트맵(물론 이러한 기능은 많지 않습니다). 다소 형편없이 설계된 엔진도 있고, 개발자에게 2D 레벨 편집기와 디버깅 도구를 제공하는 엔진도 있습니다.

대부분의 엔진은 본격적인 게임 개발에 필요한 시간을 줄이는 역할을 하는 것으로 추정됩니다. 그러나 많은 개발자는 구조를 더 잘 표현하기 위해 프로젝트를 처음부터 완전히 만드는 것을 선호합니다. 실제로 가치가 있는 JavaScript-HTML5 엔진은 거의 없지만 한 가지 큰 단점도 있습니다. 더 이상 지원되지 않거나 중단될 예정이라는 것입니다. 따라서 엔진을 선택할 때 지원이 꽤 오랫동안 지속되는 제품을 선택하십시오.

실제로 여기에 엔진 자체가 있습니다.

교활한

복고풍 스타일의 2D 스프라이트 아케이드 게임 및 스도쿠와 같은 퍼즐을 구현하는 데 이상적입니다. 즉시 사용할 수 있는 자체 실행 게임 루프가 있습니다. 마우스와 키보드가 지원됩니다. 잘 문서화되어 있으며 유일한 단점은 사운드 지원이 부족하다는 것입니다.

리치JS

완전히 JavaScript로 작성된 크로스 브라우저 오픈 소스입니다. 처음부터 최대한 유연하게 구축되었으며 광범위한 API를 갖추고 있으며 최신 브라우저의 최신 기능을 사용합니다. 이 프레임워크는 귀하의 아이디어, 즉 가장 일반적으로 사용되는 도구를 사용한 구현 등 모든 작업을 수행하도록 설계되었습니다.

GameJS

페이지를 만드는 데에는 JavaScript와 CSS가 사용됩니다. 그들은 함께 매우 자신감 있고 조화롭게 일합니다. 비디오 게임 프로그래밍의 기초를 배우는 초보자를 위해 설계되었습니다. 이미 CSS 기술을 갖고 있다면 더 쉬울 것입니다.

클랜FX

iPhone에서 이식된 JavaScript의 2D HTML5 그래픽 엔진. 추가 플러그인을 설치하지 않고도 모든 최신 장치에서 실행할 수 있는 2D 게임 및 그래픽 애플리케이션을 빠르게 만들 수 있습니다.