KR102036392B1 - Managing script file dependencies and load times - Google Patents

Managing script file dependencies and load times Download PDF

Info

Publication number
KR102036392B1
KR102036392B1 KR1020147020003A KR20147020003A KR102036392B1 KR 102036392 B1 KR102036392 B1 KR 102036392B1 KR 1020147020003 A KR1020147020003 A KR 1020147020003A KR 20147020003 A KR20147020003 A KR 20147020003A KR 102036392 B1 KR102036392 B1 KR 102036392B1
Authority
KR
South Korea
Prior art keywords
script file
client
side script
page
computer
Prior art date
Application number
KR1020147020003A
Other languages
Korean (ko)
Other versions
KR20140116874A (en
Inventor
조나단 프레드 컨
재커리 네이션
알란 티 노바우어
프랭크 펭-춘 치앙
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20140116874A publication Critical patent/KR20140116874A/en
Application granted granted Critical
Publication of KR102036392B1 publication Critical patent/KR102036392B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 개념 및 기술이 본 명세서에 기재된다. 본 명세서에 개시되는 개념 및 기술에 따라, 서버 컴퓨터는 페이지를 저장하고 상기 페이지를 클라이언트 장치로 제공한다. 상기 페이지는 실행 및/또는 렌더링 동안 하나 이상의 스크립트 파일을 참조 및/또는 의존할 수 있다. 상기 서버 컴퓨터는 스크립트 파일과 연관된 스크립트 파일 의존관계 및 로드 레벨을 결정할 수 있다. 상기 서버 컴퓨터는 데이터, 가령, 스크립트 파일 의존관계 및 스크립트 파일 로드 레벨을 가리킬 수 있는 방향성 그래프 및/또는 테이블을 생성할 수 있다. 상기 데이터는 페이지의 로딩, 렌더링, 및/또는 실행 동안 클라이언트 장치 또는 또 다른 개체로 제공될 수 있다. Described herein are concepts and techniques for managing script file dependencies and load points. In accordance with the concepts and techniques disclosed herein, a server computer stores a page and provides the page to a client device. The page may reference and / or rely on one or more script files during execution and / or rendering. The server computer may determine a script file dependency and load level associated with the script file. The server computer may generate directional graphs and / or tables that may indicate data, such as script file dependencies and script file load levels. The data may be provided to the client device or another entity during the loading, rendering, and / or execution of the page.

Figure 112014067248860-pct00007
Figure 112014067248860-pct00007

Description

스크립트 파일 의존관계 및 로드 시점 관리 기법{MANAGING SCRIPT FILE DEPENDENCIES AND LOAD TIMES}Script File Dependency and Load Point Management Techniques {MANAGING SCRIPT FILE DEPENDENCIES AND LOAD TIMES}

웹 애플리케이션 및 사이트는 종종 클라이언트측 스크립트 파일 및/또는 그 밖의 다른 클라이언트측 실행형 코드를 사용하여 애플리케이션 및/또는 사이트와 연관된 로직을 제공한다. 웹 페이지 및 애플리케이션은 스크립트 파일로의 참조를 포함할 수 있다. 따라서 특정 페이지 또는 애플리케이션에 관련된 스크립트 파일의 리스트가 클라이언트에 의해 저장되거나 액세스 가능한 파일에서 나타내어질 수 있다. 이들 파일 및/또는 리스트는 사이트 운영자 또는 그 밖의 다른 개체에 의해 컴파일 및/또는 수동 변경될 수 있다. Web applications and sites often use client-side script files and / or other client-side executable code to provide logic associated with the application and / or site. Web pages and applications can include references to script files. Thus, a list of script files associated with a particular page or application can be represented in a file stored or accessible by the client. These files and / or lists may be compiled and / or manually modified by site administrators or other entities.

일부 웹 애플리케이션 및/또는 웹 사이트는 방대한 수의 클라이언트측 스크립트 파일에 의존할 수 있다. 성능 문제 및/또는 컴퓨팅 및 그 밖의 다른 자원 제한으로 인해 웹 애플리케이션 또는 웹 사이트와 연관된 모든 기능을 포함하는 단일 스크립트 파일을 저장 및/또는 로드하는 것은 바람직하지 않거나, 및/또는 비실용적일 수 있다. 따라서 종종 클라이언트측 기능이 복수의 파일로 분할되고, 웹 애플리케이션 또는 사이트와 연관된 기능을 제공하기 위해, 상기 복수의 파일 중 일부 또는 전부가 타 스크립트 파일에 의존적이거나, 의존적이 아닐 수 있다. 따라서, 애플리케이션 및/또는 페이지는 사이트 또는 애플리케이션과 연관된 특정 페이지의 렌더링 동안 사용될 수 있는 하나 이상의 스크립트 파일로의 참조를 포함할 수 있다. Some web applications and / or web sites may rely on a large number of client-side script files. Due to performance issues and / or computing and other resource limitations, it may be undesirable and / or impractical to store and / or load a single script file that contains all the functionality associated with a web application or web site. Thus, often client-side functionality is divided into a plurality of files, and some or all of the plurality of files may or may not be dependent on other script files to provide functionality associated with a web application or site. Thus, the application and / or page may include a reference to one or more script files that may be used during the rendering of a particular page associated with the site or application.

사이트 또는 애플리케이션과 연관된 특정 페이지 내에서 둘 이상의 스크립트 파일이 참조되는 경우, 스크립트 파일이 로드되는 순서가 또한 중요할 수 있다. 특히, 제 2 스크립트 파일에 대해 의존관계(dependency)를 갖는 제 1 스크립트 파일을 실행시키기 위해, 제 2 스크립트 파일은 제 1 스크립트 파일의 실행 전에 로드될 필요가 있을 수 있다. 따라서 스크립트 파일과 연관된 로드 순서가 웹 페이지 또는 애플리케이션과 연관된 기능(functionality)에 영향을 미칠 수 있다.If more than one script file is referenced within a particular page associated with a site or application, the order in which the script files are loaded may also be important. In particular, in order to execute a first script file having a dependency on the second script file, the second script file may need to be loaded before execution of the first script file. Thus, the load order associated with the script file can affect the functionality associated with the web page or application.

덧붙여, 스크립트 파일은 페이지의 렌더링 중 스크립트 파일 참조가 렌더링 중에 실행된 시점에서 로드될 수 있다. 스크립트 파일 참조는 웹 페이지의 헤더 내에 위치하거나 페이지 바디(page body) 내 그 밖의 다른 곳 등에 위치할 수 있다. 따라서 스크립트 파일 의존관계를 관리하는 것은 시간 소모적인 수동 프로세스를 필요로 할 수 있다. In addition, the script file can be loaded at the point in time when the script file reference was executed during rendering of the page. The script file reference may be located within the header of the web page or elsewhere in the page body. Therefore, managing script file dependencies can require a time-consuming manual process.

이러한 그리고 그 밖의 다른 고려사항을 고려해 본 명세서의 개시내용이 제공된다. In light of these and other considerations, the present disclosure is provided.

개요summary

스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 개념 및 기술이 본 명세서에서 기재된다. 본 명세서에서 개시된 개념 및 기술에 따라, 서버 컴퓨터는 파일, 웹 사이트, 또는 그 밖의 다른 자원("페이지")을 저장하고 상기 페이지를 네트워크를 통해 서버 컴퓨터와 통신하는 클라이언트 장치로 제공 수 있다. 상기 페이지는 페이지와 연관된 기능을 제공하기 위한 실행 및/또는 렌더링 동안 하나 이상의 클라이언트측 스크립트 파일("스크립트 파일")에 의존할 수 있다. 상기 페이지는 스크립트 파일로의 참조를 포함하여, 상기 스크립트 파일은 로딩, 렌더링, 및/또는 페이지와의 상호대화 동안 다양한 시점에서 로딩될 수 있다. Concepts and techniques for managing script file dependencies and load points are described herein. In accordance with the concepts and techniques disclosed herein, a server computer may store files, web sites, or other resources (“pages”) and provide the pages to client devices that communicate with the server computer over a network. The page may rely on one or more client-side script files (“script files”) during execution and / or rendering to provide functionality associated with the page. The page includes a reference to a script file such that the script file can be loaded at various points during loading, rendering, and / or interaction with the page.

다양한 실시예에 따르면, 서버 컴퓨터는 페이지를 호스팅하고 페이지 및 스크립트 파일을 분석하여 스크립트 파일 의존관계 및 상기 스크립트 파일과 연관된 로드 레벨을 결정하기 위해 서버 애플리케이션을 실행할 수 있다. 본 명세서에서 사용될 때, "로드 레벨"은 스크립트 파일을 참조하는 페이지의 렌더링, 로딩, 및/또는 실행 전, 동안, 또는 후에 스크립트 파일이 로딩되는 시점 또는 스테이지를 포함할 수 있다. 따라서, 로드 레벨은 스크립트 파일과 연관된 로드 시점을 나타낼 수 있다. 덧붙여, 복수의 스크립트 파일에 대한 복수의 로드 레벨이 그룹으로 고려될 때, 상기 로드 레벨은 스크립트 파일의 로드 순서를 가리키도록 해석될 수 있다. 상기 서버 애플리케이션은 페이지 및/또는 스크립트 파일을 분석하여 페이지에 의해 및/또는 그 밖의 다른 스크립트 파일 내에서 참조되는 스크립트 파일을 식별하여, 페이지와 연관하여 사용될 스크립트 파일의 리스트를 컴파일할 수 있다. 또한 상기 서버 애플리케이션은 스크립트 파일이 로딩될 페이지의 로딩, 렌더링, 및/또는 상기 페이지와의 상호대화 동안의 시점과 관련된 로드 레벨을 결정하도록 구성될 수 있다. According to various embodiments, the server computer may run a server application to host the page and analyze the page and script files to determine script file dependencies and load levels associated with the script files. As used herein, “load level” may include the point in time or stage at which a script file is loaded before, during, or after rendering, loading, and / or executing a page that references the script file. Thus, the load level may indicate a load time associated with the script file. In addition, when a plurality of load levels for a plurality of script files are considered as a group, the load levels may be interpreted to indicate the load order of the script files. The server application may analyze the page and / or script files to identify script files referenced by and / or within other script files, to compile a list of script files to be used in association with the page. The server application may also be configured to determine a load level associated with a time point during loading, rendering, and / or interaction with the page on which the script file is to be loaded.

상기 서버 애플리케이션은 스크립트 파일 의존관계 및 스크립트 파일 로드 레벨을 결정하도록 서로 및/또는 독립적으로 분석될 수 있는 그래프 및/또는 테이블과 관련된 스크립트 파일을 생성할 수 있다. 상기 데이터는 페이지를 렌더링할 때 사용되도록 클라이언트 장치로 제공될 수 있다. 일부 실시예에서, 상기 데이터는 서버 컴퓨터 및/또는 또 다른 데이터 저장 장치에 저장되고 페이지를 액세스하는 개체로 제공될 수 있다. The server application may generate script files associated with graphs and / or tables that may be analyzed separately and / or independently to determine script file dependencies and script file load levels. The data may be provided to the client device for use in rendering the page. In some embodiments, the data may be stored on a server computer and / or another data storage device and provided as an entity to access a page.

하나의 양태에 따르면, 서버 컴퓨터는 클라이언트측 스크립트 파일로의 참조를 갖는 페이지를 저장할 수 있다. 상기 서버 컴퓨터는 페이지를 분석하기 위한 명령어 또는 요청을 수신하고 명령어 또는 요청에 응답하여 의존관계 및/또는 로드 레벨 결정을 개시할 수 있다. 상기 서버 컴퓨터는 페이지에서 참조되는 클라이언트측 스크립트 파일을 등록하고 등록된 클라이언트측 스크립트 파일 각각을 분석하여 상기 클라이언트측 스크립트 파일들 간 의존관계를 구할 수 있고, 클라이언트측 스크립트 파일 의존관계 및/또는 클라이언트측 스크립트 파일 로드 레벨을 나타내는 데이터를 저장 또는 타 개체에 의해 사용되도록 출력할 수 있다. According to one aspect, the server computer may store a page with a reference to the client-side script file. The server computer may receive an instruction or request to parse a page and initiate a dependency and / or load level determination in response to the instruction or request. The server computer may register the client-side script file referenced in the page and analyze each registered client-side script file to obtain the dependency between the client-side script files, and the client-side script file dependency and / or client-side Data representing the script file load level can be output for storage or use by other objects.

일부 실시예에 따르면, 서버 컴퓨터는 클라이언트측 스크립트 파일을 선택하고, 노드를 방향성 그래프에 추가, 클라이언트측 스크립트 파일로의 참조를 로드 레벨 테이블에 추가, 추가된 클라이언트측 스크립트 파일이 페이지에서 참조되는지 여부를 판정함으로써, 클라이언트측 스크립트 파일을 등록할 수 있다. 따라서 "노드"는 방향성 그래프 내 클라이언트측 스크립트 파일의 표현에 대응할 수 있고, 노드의 분석은 각각의 클라이언트측 스크립트 파일의 분석에 대응할 수 있다. 상기 분석 프로세스는 어떠한 추가적인 클라이언트측 스크립트 파일도 분석을 위해 남아 있지 않을 때까지 반복될 수 있다. 등록된 클라이언트측 스크립트 파일이 분석되어 파일들 간 의존관계를 구할 수 있다. According to some embodiments, the server computer selects a client-side script file, adds a node to the directional graph, adds a reference to the client-side script file to the load level table, and whether the added client-side script file is referenced in the page. By determining this, the client-side script file can be registered. Thus, a "node" may correspond to the representation of a client-side script file in the directional graph, and analysis of the node may correspond to the analysis of each client-side script file. The analysis process may be repeated until no additional client-side script file remains for analysis. The registered client-side script file can be analyzed to obtain the dependencies between the files.

일부 실시예에서, 서버 컴퓨터는 각각의 클라이언트측 스크립트 파일이 단 한 번씩만 분석됨을 보장하기 위해 노드 채색을 사용하는 알고리즘을 적용한다. 본 명세서에서 사용될 때, "노드 채색"은 클라이언트측 스크립트 파일이 페이지 및/또는 상기 페이지 내 그 밖의 다른 클라이언트측 스크립트 파일에 의해 여러 번 참조되는 경우라도, 특정 클라이언트측 스크립트 파일이 등록되고 상기 클라이언트측 스크립트 파일들 간 의존관계는 단 한 번만 구해짐을 보장하도록 서버 컴퓨터에 의해 사용되는 프로세스를 포함할 수 있다. 따라서 노드 채색은 클라이언트측 스크립트 파일을 분석 및/또는 등록하는 데 소비되는 자원을 감소시키기 위해, 등록 및/또는 분석된 클라이언트측 스크립트 파일을 등록, 방문 및/또는 분석된 것으로 마킹하는 것을 포함할 수 있다. 상기 클라이언트측 스크립트 파일은 분석되어 의존관계를 식별하고 서버 컴퓨터에 의해 출력되는 데이터 구조에 상기 의존관계를 반영할 수 있다. In some embodiments, the server computer applies an algorithm that uses node coloring to ensure that each client-side script file is analyzed only once. As used herein, "node coloring" means that a particular client-side script file is registered and said client-side even if the client-side script file is referenced multiple times by the page and / or other client-side script file within the page. Dependencies between script files may include a process used by the server computer to ensure that it is only retrieved once. Thus, node coloring may include marking registered and / or analyzed client-side script files as registered, visited, and / or analyzed to reduce the resources consumed in analyzing and / or registering client-side script files. have. The client-side script file can be analyzed to identify dependencies and reflect the dependencies in the data structure output by the server computer.

또 다른 양태에 따르면, 서버 컴퓨터에 의해 출력된 데이터는 방향성 그래프를 포함할 수 있다. 상기 방향성 그래프는 페이지에 의해 참조되는 클라이언트측 스크립트 파일 각각에 대응하는 노드를 포함할 수 있다. 노드들 간 에지는 클라이언트측 스크립트 파일들 간 의존관계를 가리킬 수 있다. 또한 서버 컴퓨터에 의해 출력되는 데이터는 페이지의 렌더링, 로딩, 또는 상기 페이지와의 상호대화 동안 상기 클라이언트측 스크립트 파일이 로딩될 로드 레벨을 나타내는 로드 레벨 테이블을 포함할 수 있다. 상기 로드 레벨은 구현에 따라 다를 수 있으며 따라서 임의의 개수의 로드 레벨을 포함할 수 있다. According to another aspect, the data output by the server computer may comprise a directional graph. The directional graph may include nodes corresponding to each of the client-side script files referenced by the page. Edges between nodes can point to dependencies between client-side script files. The data output by the server computer may also include a load level table indicating the load level at which the client-side script file will be loaded during rendering, loading, or interaction with the page. The load level may vary from implementation to implementation and may therefore include any number of load levels.

앞서 기재된 사항은 컴퓨터로 제어되는 장치, 컴퓨터 프로세서, 컴퓨팅 시스템, 또는 제조 물품, 가령, 컴퓨터 판독형 저장 매체로 구현될 수 있다. 이들 및 다양한 그 밖의 다른 특징이 다음의 상세한 설명을 읽고 연관된 도면을 검토한 후 자명해 질 것이다. The foregoing may be embodied in a computer controlled device, a computer processor, a computing system, or an article of manufacture, such as a computer readable storage medium. These and various other features will become apparent after reading the following detailed description and reviewing the associated drawings.

이 개요는 이하의 상세한 설명에서 더 기재될 개념들의 모음을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 핵심 특징 또는 필수 특징을 식별하려는 것이 아니며 이 개요는 청구되는 사항의 범위를 제한하려 사용된 것도 아니다. 덧붙여, 청구되는 사항은 본 명세서의 임의의 부분에 명시된 임의의 또는 모든 단점들을 해결하는 구현예에 제한되지 않는다.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features and this Summary is not intended to limit the scope of the claimed subject matter. In addition, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this specification.

도 1은 본 명세서에 개시되는 다양한 실시예에 대한 예시적 동작 환경을 도시하는 시스템도이다.
도 2는 예시적 실시예에 따라 스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 방법의 양태를 나타내는 흐름도이다.
도 3은 예시적 실시예에 따라 페이지와 연관된 스크립트 파일을 등록하기 위한 방법의 양태를 나타내는 흐름도이다.
도 4는 예시적 실시예에 따라, 스크립트 파일 의존관계를 구하기 위한 방법의 양태를 나타내는 흐름도이다.
도 5는 예시적 실시예에 따라, 스크립트 파일 방향성 그래프를 나타내는 블록도이다.
도 6은 예시적 실시예에 따라 스크립트 파일 로드 레벨 테이블을 나타내는 선 그림이다.
도 7은 본 명세서에 제공되는 실시예의 양태들을 구현할 수 있는 컴퓨팅 시스템에 대한 예시적 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시하는 컴퓨터 아키텍처 다이어그램이다.
1 is a system diagram illustrating an example operating environment for various embodiments disclosed herein.
2 is a flow diagram illustrating aspects of a method for managing script file dependencies and load points in accordance with an example embodiment.
3 is a flow diagram illustrating aspects of a method for registering a script file associated with a page according to an example embodiment.
4 is a flow diagram illustrating aspects of a method for obtaining a script file dependency, in accordance with an example embodiment.
5 is a block diagram illustrating a script file directionality graph, in accordance with an example embodiment.
6 is a line diagram illustrating a script file load level table in accordance with an example embodiment.
7 is a computer architecture diagram illustrating an example computer hardware and software architecture for a computing system that may implement aspects of the embodiments provided herein.

다음의 상세한 설명은 스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 개념 및 기술에 관한 것이다. 본 명세서에 기재된 개념 및 기술에 따라, 서버 컴퓨터가 스크립트 파일로의 참조를 갖는 페이지 또는 그 밖의 다른 자원을 저장한다. 상기 서버 컴퓨터는 페이지를 분석하고 스크립트 파일 의존관계 결정 및/또는 스크립트 파일 로드 레벨 결정을 개시한다. 서버 컴퓨터는 페이지에서 참조되는 스크립트 파일을 등록하고 등록된 스크립트 파일 각각을 분석하여 스크립트 파일들 간 의존관계를 해결하며, 스크립트 파일 의존관계 및/또는 스크립트 파일 로드 레벨을 나타내는 데이터를 출력할 수 있다. 서버 컴퓨터에 의해 출력되는 데이터는 방향성 그래프(directed graph) 및/또는 테이블을 포함할 수 있다. 방향성 그래프는 페이지에 의해 참조되는 스크립트 파일 또는 상기 페이지에 의해 참조되는 다른 스크립트 파일 각각에 대응하는 노드(node)를 포함할 수 있다. 노드들 간 에지(edge)는 스크립트 파일들 간 의존관계를 가리킬 수 있다. 또한 서버 컴퓨터에 의해 출력되는 데이터가 렌더링, 로드, 또는 페이지와의 상호대화 동안 스크립트 파일이 로드될 로드 레벨(load level)을 나타내는 로드 레벨 테이블을 포함할 수 있다. 상기 로드 레벨은 구현예 특정적일 수 있으며 따라서 어떠한 개수의 로드 레벨이라도 포함할 수 있다. The following detailed description relates to concepts and techniques for managing script file dependencies and load points. In accordance with the concepts and techniques described herein, the server computer stores pages or other resources with references to script files. The server computer analyzes the page and initiates script file dependency determination and / or script file load level determination. The server computer may register the script file referenced in the page, analyze each registered script file to resolve the dependency between the script files, and output data representing the script file dependency and / or script file load level. The data output by the server computer may include a directed graph and / or a table. The directional graph may include nodes corresponding to each of the script files referenced by the page or other script files referenced by the page. Edges between nodes can point to dependencies between script files. The data output by the server computer may also include a load level table indicating the load level at which the script file will be loaded during rendering, loading, or interaction with the page. The load level may be implementation specific and may therefore include any number of load levels.

일부 실시예에 따라, 서버 컴퓨터는 스크립트 파일을 선택하고, 한 노드를 방향성 그래프로 추가하며, 상기 스크립트 파일로의 참조를 상기 로드 레벨 테이블에 추가하고, 추가 스크립트 파일이 페이지에서 참조되는지 여부를 판정함으로써, 스크립트 파일을 등록한다. 어떠한 추가 스크립트 파일도 분석을 위해 남아 있지 않을 때까지 상기 프로세서는 반복될 수 있다. 등록된 스크립트 파일이 분석되어 파일들 간 의존관계를 해결할 수 있다. 상기 서버 컴퓨터는 스크립트 파일 각각이 한번씩만 분석됨을 보장하여 분석 동안의 대기시간(latency) 및/또는 자원 사용성을 감소시키기 위해 노드 채색(node coloring)을 이용하는 알고리즘을 적용할 수 있다. 상기 스크립트 파일은 서버 컴퓨터에 의해 출력되는 데이터에서 의존관계를 식별하고 의존관계를 반영하도록 분석될 수 있다. According to some embodiments, the server computer selects a script file, adds a node to the directional graph, adds a reference to the script file to the load level table, and determines whether additional script files are referenced in the page. This registers the script file. The processor can be repeated until no additional script file remains for analysis. The registered script file can be analyzed to resolve the dependencies between the files. The server computer may apply an algorithm that uses node coloring to ensure that each script file is analyzed only once, thereby reducing latency and / or resource usage during analysis. The script file can be analyzed to identify and reflect dependencies in the data output by the server computer.

본 명세서에 기재된 발명은 컴퓨터 시스템 상에서의 운영 체제 및 애플리케이션 프로그램의 실행과 함께 실행되는 프로그램 모듈의 일반적인 맥락으로 제공되며, 해당 분야의 통상의 기술자라면 다른 유형의 프로그램 모듈과 함께 조합되어 그 밖의 다른 구현예가 수행될 수 있음을 알 것이다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 구성요소, 데이터 구조, 및 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 그 밖의 다른 유형의 구조를 포함한다. 덧붙여, 해당 분야의 통상의 기술자라면 본 명세서에 기재된 사항들이 다른 컴퓨터 시스템 구성, 가령, 핸드-헬드 장치, 마이크로프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능한 소비자 전자기기, 미니컴퓨터, 메인프레임 컴퓨터 등과 함께 실시될 수 있음을 알 것이다.The invention described herein is provided in the general context of program modules that execute in conjunction with the execution of operating systems and application programs on computer systems, and those skilled in the art, in combination with other types of program modules, to implement other implementations. It will be appreciated that examples may be performed. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. In addition, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, such as hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. It will be appreciated.

다음의 상세한 설명에서, 본 명세서의 일부분을 형성하며 예시적 특정 실시예 또는 예시로서 나타난 도면에 대한 참조가 이뤄진다. 유사한 도면부호가 몇 개의 도면에 걸쳐 유사한 요소를 나타내는 도면을 참조하여, 스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 컴퓨팅 시스템, 컴퓨터 판독형 저장 매체, 및 컴퓨터-구현형 방법의 양태가 제공될 것이다.In the following detailed description, reference is made to the drawings, which form a part hereof and which are shown as a particular illustrative embodiment or example. With reference to the drawings, wherein like numerals represent similar elements throughout the several views, aspects of computing systems, computer readable storage media, and computer-implemented methods for managing script file dependencies and load points will be provided. .

도 1을 다시 참조하면, 본 명세서에 제공되는 다양한 실시예에 대한 하나의 동작 환경(100)의 양태가 기재될 것이다. 도 1에 도시된 동작 환경(100)이 통신 네트워크("네트워크")(104)의 일부로서, 또는 이와 통신하여 동작하는 서버 컴퓨터(102)를 포함한다. 서버 컴퓨터(102)는 운영 체제(도 1에 도시되지 않음) 및 하나 이상의 애플리케이션 프로그램, 가령, 서버 애플리케이션(106) 및/또는 그 밖의 다른 애플리케이션 프로그램을 실행하도록 구성된다. Referring again to FIG. 1, aspects of one operating environment 100 for various embodiments provided herein will be described. The operating environment 100 shown in FIG. 1 includes a server computer 102 that operates as part of or in communication with a communication network (“network”) 104. Server computer 102 is configured to execute an operating system (not shown in FIG. 1) and one or more application programs, such as server application 106 and / or other application programs.

운영 체제는 서버 컴퓨터(102)의 동작을 제어하기 위한 컴퓨터 프로그램이다. 상기 서버 애플리케이션(106)은 스크립트 파일 의존관계 및/또는 스크립트 파일 로드 시점을 관리하기 위해 본 명세서에 기재된 기능을 제공하기 위해 운영 체제에 추가로 실행되도록 구성된 실행 가능 프로그램이다. 다양한 실시예에 따르면, 서버 컴퓨터(102)는 웹 서버와 연관된 기능을 제공하도록 구성되고 하나 이상의 페이지, 사이트, 애플리케이션, 및/또는 그 밖의 다른 자원을 하나 이상의 페이지("페이지")(108)를 통해 호스팅하도록 구성될 수 있다. 따라서 상기 페이지(108)는 하나 이상의 애플리케이션, 웹 사이트, 웹 페이지, 및/또는 그 밖의 다른 자원과 관련될 수 있다.The operating system is a computer program for controlling the operation of the server computer 102. The server application 106 is an executable program configured to be executed further in the operating system to provide the functions described herein to manage script file dependencies and / or script file load points. According to various embodiments, server computer 102 is configured to provide functionality associated with a web server and may include one or more pages (“pages”) 108 for one or more pages, sites, applications, and / or other resources. It can be configured to host via. Thus, the page 108 may be associated with one or more applications, web sites, web pages, and / or other resources.

페이지(108)는 서버 컴퓨터(102), 가령, 클라이언트 장치(110)와 통신하는 하나 이상의 장치 또는 그 밖의 다른 개체로 제공될 수 있다. 다양한 실시예에 따르면, 개인 컴퓨터("PC"), 가령, 데스크톱, 태블릿, 또는 랩톱 컴퓨터 시스템에 의해 클라이언트 장치(110)의 기능이 제공된다. 또한 클라이언트 장치(110)의 기능은 그 밖의 다른 유형의 컴퓨팅 시스템, 비-제한적 예를 들면, 서버 컴퓨터, 핸드헬드 컴퓨터, 넷북 컴퓨터, 임베디드 컴퓨터 시스템, 개인 디지털 보조기, 모바일 전화기, 스마트 폰, 또는 그 밖의 다른 컴퓨팅 장치에 의해 제공될 수 있다. 본 명세서에 개시된 개념 및 기술을 설명하기 위한 목적으로, 클라이언트 장치(110)는 PC로 기재된다. 이 실시예는 예시에 불과하며, 어느 방식으로도 제한하는 것으로 이해되어서는 안 된다.The page 108 may be provided to one or more devices or other entities in communication with the server computer 102, such as the client device 110. According to various embodiments, the functionality of the client device 110 is provided by a personal computer (“PC”), such as a desktop, tablet, or laptop computer system. The functionality of the client device 110 may also include other types of computing systems, including, but not limited to, server computers, handheld computers, netbook computers, embedded computer systems, personal digital assistants, mobile phones, smart phones, or the like. May be provided by other computing devices. For the purpose of illustrating the concepts and techniques disclosed herein, client device 110 is described as a PC. This embodiment is illustrative only and should not be construed as limiting in any way.

다양한 실시예에 따르면, 클라이언트 장치(110)가 운영 체제(112) 및 하나 이상의 애플리케이션 프로그램(114)을 실행시킨다. 애플리케이션 프로그램은 다양한 기능, 가령, 워드 프로세싱 프로그램, 웹 브라우저 등을 제공할 수 있다. 본 명세서에 개시된 개념과 기법을 설명하기 위한 목적으로, 애플리케이션 프로그램(114)은 본 명세서에서 앞서 기재된 페이지(108)를 액세스 및/또는 사용하기 위해 사용되는 웹 브라우저로서 기재된다. 따라서, 클라이언트 장치(110)는, 페이지(108)의 액세스를 통해, 하나 이상의 웹 애플리케이션 및/또는 웹 사이트와 연관된 기능을 클라이언트 장치(110)의 사용자에게 제공할 수 있다. According to various embodiments, client device 110 executes operating system 112 and one or more application programs 114. The application program may provide various functions, such as a word processing program, a web browser, and the like. For the purpose of describing the concepts and techniques disclosed herein, the application program 114 is described as a web browser used to access and / or use the page 108 previously described herein. Accordingly, client device 110 may provide the user of client device 110 with functionality associated with one or more web applications and / or web sites through access of page 108.

다양한 실시예에 따르면, 클라이언트 장치(110)가 하나 이상의 클라이언트측 스크립트 파일("스크립트 파일")(116)을 저장하도록 구성된다. 상기 스크립트 파일(116)은 다양한 애플리케이션 구성요소, 애플리케이션 모듈, 확장, 웹 애드-인, 그 밖의 다른 파일, 및/또는 그 밖의 다른 유형의 실행 가능 코드를 포함할 수 있다. 일부 실시예에서, 예를 들어, 스크립트 파일(116)은 다양한 스크립트 언어, 가령, JAVASCRIPT, VBSCRIPT, XML User Interface Markup Language ("XUL"), Extensible Stylesheet Language Transformations ("XSLT"), 그 밖의 다른 언어 등으로 포맷팅된 실행 가능 코드를 포함한다. 상기 클라이언트 장치(110)는 페이지(108)와 함께 스크립트 파일(116)을 사용하여, 클라이언트 장치(110)의 사용자에게 서버 컴퓨터(102)와 연관된 기능을 제공할 수 있다. 특히, 클라이언트 장치(110)로 제공되는 페이지(108)는 스크립트 파일(116) 중 하나 이상으로의 하나 이상의 참조를 포함할 수 있다. 따라서 클라이언트 장치(110)에 의한 페이지(108)의 렌더링 및/또는 그 밖의 다른 실행 동안, 상기 스크립트 파일(116)은 클라이언트 장치(110)에 의해 불러와지거나(retrieve), 로드되거나, 및/또는 실행되어, 서버 컴퓨터(102)와 연관된 기능을 제공할 수 있다.According to various embodiments, client device 110 is configured to store one or more client-side script files (“script files”) 116. The script file 116 may include various application components, application modules, extensions, web add-ins, other files, and / or other types of executable code. In some embodiments, for example, script file 116 can be a variety of scripting languages, such as JAVASCRIPT, VBSCRIPT, XML User Interface Markup Language ("XUL"), Extensible Stylesheet Language Transformations ("XSLT"), and other languages. Include executable code formatted as such. The client device 110 can use the script file 116 in conjunction with the page 108 to provide the user of the client device 110 with the functionality associated with the server computer 102. In particular, page 108 provided to client device 110 may include one or more references to one or more of script files 116. Thus, during rendering and / or other execution of the page 108 by the client device 110, the script file 116 is retrieved, loaded, and / or by the client device 110. May be executed to provide functionality associated with the server computer 102.

다양한 실시예에 따르면, 페이지(108)는 페이지(108) 내 다양한 위치에서 스크립트 파일(116)을 참조할 수 있다. 예를 들어, 페이지(108)는 웹 페이지의 헤더 부분에서, 웹 페이지 바디 내 다양한 위치에서, 및/또는 페이지(108) 내 그 밖의 다른 위치에서, 스크립트 파일(116) 중 하나로의 참조를 포함할 수 있다. 따라서 클라이언트 장치(110)는 페이지(108)의 렌더링 또는 보기(view) 동안 다양한 때에 스크립트 파일(116)을 불러오거나, 로드하거나, 및/또는 실행시킬 수 있다. 다양한 실시예에 따르면, 클라이언트 장치(110)는 스크립트 파일(116) 중 하나 이상으로의 하나 이상의 참조를 포함한 페이지(108) 중 하나를 수신한다. 덧붙여, 페이지(108)는 스크립트 파일(116) 중 하나 이상으로의 복수의 참조를 포함할 수 있다. 일부 경우, 페이지(108) 중 하나에서 참조되는 특정 스크립트 파일(116)이 또 다른 스크립트 파일(116)에 의존적일 수 있다. 따라서, 클라이언트 장치(110)는 페이지(108)에서 참조될 때 스크립트 파일(116)을 불러오거나, 로드하거나, 및/또는 실행시킬 수 있다. 일부 경우, 특정 로드 순서로 스크립트 파일(116)을 로딩함으로써, 렌더링 및/또는 페이지(108)와의 상호대화 동안 클라이언트 장치(110)의 성능을 개선할 수 있다.According to various embodiments, page 108 may reference script file 116 at various locations within page 108. For example, page 108 may include a reference to one of script files 116 in the header portion of the web page, at various locations within the web page body, and / or at other locations within page 108. Can be. Accordingly, client device 110 may load, load, and / or execute script file 116 at various times during the rendering or view of page 108. According to various embodiments, client device 110 receives one of pages 108 including one or more references to one or more of script files 116. In addition, page 108 may include a plurality of references to one or more of script files 116. In some cases, the particular script file 116 referenced in one of the pages 108 may be dependent on another script file 116. Thus, client device 110 can load, load, and / or execute script file 116 when referenced in page 108. In some cases, loading the script file 116 in a particular load order may improve performance of the client device 110 during rendering and / or interaction with the page 108.

특히, 특정 페이지(108)에서의 제 1 스크립트 파일(116)에 제 2 스크립트 파일(116)이 의존되는 경우, 스크립트 파일(116)의 로드 순서가 페이지(108)의 렌더링 동안 신뢰할만한 사용자 경험을 제공하기 위한 중요한 고려사항일 수 있다. 예를 들어, 제 1 스크립트 파일(116)의 로딩 전에 제 2 스크립트 파일(116)이 실행되는 경우, 상기 클라이언트 장치(110)는 제 2 스크립트 파일(116)의 실행 동안 제 1 스크립트 파일(116)을 로딩할 수 있다. 제 1 스크립트 파일(116)의 로딩 동안 겪는 대기시간(latency)이 바람직하지 않을 수 있다. 이에 추가로 또는 이를 대신하여, 참조된 스크립트 파일(116)이 제 2 스크립트 파일(116)의 실행에 앞서 로딩되지 않는 경우 제 2 스크립트 파일(116)의 실행이 실패하거나 중단될 수 있다. In particular, when the second script file 116 depends on the first script file 116 on a particular page 108, the loading order of the script files 116 may result in a reliable user experience during the rendering of the page 108. It can be an important consideration to provide. For example, if the second script file 116 is executed before loading of the first script file 116, the client device 110 may execute the first script file 116 during execution of the second script file 116. Can be loaded. Latency experienced during loading of the first script file 116 may be undesirable. In addition or in lieu thereof, execution of the second script file 116 may fail or abort if the referenced script file 116 is not loaded prior to the execution of the second script file 116.

따라서 본 명세서에 개시되는 개념과 기법의 실시예는 스크립트 파일(116) 또는 또 다른 클라이언트측 실행 가능 코드의 의존관계를 식별하고 스크립트 파일(116)에 대한 로드 순서를 결정하는 것을 포함한다. 다양한 실시예에 따르면, 서버 애플리케이션(106)은 페이지(108)를 분석하고, 상기 페이지(108)에 의해 참조되는 스크립트 파일(116)을 식별하며, 페이지(108) 내에서 참조되는 스크립트 파일(116)과 연관된 의존관계 및/또는 로드 순서를 특정하기 위한 데이터(118)를 생성하도록 구성된다. Thus, embodiments of the concepts and techniques disclosed herein include identifying dependencies of script file 116 or another client-side executable code and determining the load order for script file 116. According to various embodiments, server application 106 analyzes page 108, identifies script file 116 referenced by page 108, and script file 116 referenced within page 108. Is configured to generate data 118 for specifying dependencies and / or load order associated with the < RTI ID = 0.0 >

다양한 실시예에 따르면, 서버 컴퓨터(102)는, 서버 애플리케이션(106)의 실행을 통해, 결정된 의존관계 및/또는 로드 레벨, 로드 시점, 및/또는 로드 순서("로드 레벨")를 특정하는 방향성 그래프("그래프")(120) 및/또는 테이블 또는 리스트("테이블")(122)을 생성한다. 이러한 그리고 그 밖의 다른 형태의 데이터(118)가 페이지(108)와 함께 또는 페이지에 추가로 클라이언트 장치(110)로 제공될 수 있다. 따라서 클라이언트 장치(110)는, 데이터(118)의 분석을 통해, 페이지(108)의 렌더링 및/또는 그 밖의 다른 실행 동안 스크립트 파일(116)이 로딩될 순서를 결정할 수 있다. 상기 데이터(118)에 의해 특정된 순서로 스크립트 파일(116)을 로딩함으로써, 상기 클라이언트 장치(110)는 페이지(108)에 의해 참조될 때 스크립트 파일(116)을 단순히 액세스, 로딩, 및/또는 실행시키는 것에 비해, 개선된 신뢰성 및/또는 대기시간과 함께 페이지(108)와 연관된 상호대화를 제공할 수 있다. According to various embodiments, the server computer 102 may, through execution of the server application 106, specify a determined dependency and / or load level, load time, and / or load order (“load level”). Create a graph (“graph”) 120 and / or a table or list (“table”) 122. This and other forms of data 118 may be provided to client device 110 along with or in addition to page 108. Accordingly, client device 110 may, via analysis of data 118, determine the order in which script file 116 will be loaded during rendering of page 108 and / or other executions. By loading the script file 116 in the order specified by the data 118, the client device 110 simply accesses, loads, and / or accesses the script file 116 when referenced by the page 108. Compared to implementation, the interaction associated with page 108 may be provided with improved reliability and / or latency.

또 다른 실시예에서, 서버 컴퓨터(102)는 페이지(108)로의 출력을 위해 스크립트 태그 및/또는 그 밖의 다른 참조를 생성한다. 예를 들어, 서버 컴퓨터(102)는 다양한 스크립트 파일 의존관계를 구한 것을 기초로 하여 특정 스크립트 파일(116)이 페이지 헤더에 로딩될 로드 레벨 등을 결정할 수 있다. 따라서 서버 컴퓨터(102)는 이 결정을 나타내는 출력을 생성하도록 구성될 수 있다. 이 예시에서, 서버 컴퓨터(102)는, 예를 들어, <script> 태그 또는 그 밖의 다른 참조를 생성하고 상기 <script> 태그를 페이지(108)의 <head>에 임베드할 수 있다. 이 실시예는 예시이며, 어떠한 식으로도 제한하려는 것으로 해석되어서는 안 된다. 일부 실시예에서, 서버 컴퓨터(102)는 페이지(108)로의 참조 출력 외에 클라이언트 장치(110)로 출력을 제공할 필요가 없다. 따라서 클라이언트 장치(110)는 본 명세서에 기재되는 것처럼 스크립트 파일 의존관계 결정을 인지하거나 인지하지 않을 수 있으며, 대신 페이지(108)를 전통적인 방식으로 실행시키기만 할 수 있다. 그러나 일부 실시예에서, 본 명세서에 개시되는 것처럼 스크립트 파일(116) 로드 레벨 및 의존관계가 최적 성능을 위해 해결됐을 수 있다. In another embodiment, server computer 102 generates script tags and / or other references for output to page 108. For example, server computer 102 may determine the load level at which a particular script file 116 will be loaded in the page header, etc., based on obtaining various script file dependencies. Thus, server computer 102 may be configured to generate an output representative of this determination. In this example, server computer 102 may, for example, generate a <script> tag or other reference and embed the <script> tag in the <head> of page 108. This embodiment is illustrative and should not be construed as limiting in any way. In some embodiments, server computer 102 need not provide output to client device 110 in addition to the reference output to page 108. Thus, client device 110 may or may not be aware of script file dependency determination as described herein, and may instead only execute page 108 in a traditional manner. However, in some embodiments, script file 116 load levels and dependencies may be resolved for optimal performance as disclosed herein.

본 명세서에서 더 상세히 설명될 바와 같이, 페이지(108)를 분석 및/또는 하나 이상의 알고리즘을 페이지(108)와 연관된 코드에 적용시킴으로써 서버 컴퓨터(102)가 데이터(118)를 생성하도록 구성된다. 이 분석을 통해, 서버 컴퓨터(102)는 분석된 페이지(108)에 의해 참조되는 스크립트 파일(116)을 식별하고, 스크립트 파일(116)들 간 의존관계가 존재한다면 이를 결정하고, 이들 및/또는 그 밖의 다른 인자들을 기초로, 페이지(108)에 포함되는 스크립트 파일(116)에 대한 로드 순서를 결정할 수 있다. 명령어 또는 요청이 수신될 때, 하나 이상의 스케줄에 따라서, 페이지(108)의 변화가 생기거나 검출될 때, 및/또는 그 밖의 다른 때에, 서버 컴퓨터(102)의 이들 및 그 밖의 다른 기능들이 필요에 따라 실행 또는 액세스될 수 있다. 상기 서버 컴퓨터(102)는 서버 컴퓨터(102)와 연관된 데이터 저장 장치에 및/또는 서버 컴퓨터(102)에 의해 액세스 가능한 데이터 저장 장치(도 1에 도시되지 않음)에 데이터(118)를 저장할 수 있다.As will be described in more detail herein, server computer 102 is configured to generate data 118 by analyzing page 108 and / or applying one or more algorithms to code associated with page 108. Through this analysis, the server computer 102 identifies the script file 116 referenced by the analyzed page 108, determines if a dependency exists between the script files 116, and / or these and / or Based on other factors, the load order for script file 116 included in page 108 may be determined. When an instruction or request is received, depending on one or more schedules, when a change in page 108 occurs or is detected, and / or elsewhere, these and other functions of server computer 102 may be needed. May be executed or accessed accordingly. The server computer 102 may store data 118 in a data storage device associated with the server computer 102 and / or in a data storage device (not shown in FIG. 1) accessible by the server computer 102. .

다양한 실시예에 따르면, 서버 컴퓨터(102)는 의존관계 결정을 개시하고 페이지(108)의 분석을 시작한다. 제 1 동작 동안, 서버 컴퓨터(102)는 페이지(108)에 대응하는 코드 내에서 노드, 즉 스크립트 파일(116)을 식별한다. 노드의 등록 동안, 상기 서버 컴퓨터(102)는 코드에서 스크립트 파일(116)로의 참조를 검색하고, 상기 스크립트 파일(116)에 대응하는 노드를 페이지(108)와 연관된 그래프(120)에 추가할 수 있다. 또한 상기 서버 컴퓨터(102)는 스크립트 파일(116)로의 참조를 페이지(108)와 연관된 테이블(122)에 추가할 수 있다. 따라서 서버 컴퓨터(102)는 특정 페이지(108)에 의해 참조되는 스크립트 파일(116) 각각에 대한 노드 또는 그 밖의 다른 표현(representation)을 포함하는 그래프(120) 및 테이블(122)을 생성할 수 있다.According to various embodiments, server computer 102 initiates dependency determination and begins analysis of page 108. During the first operation, server computer 102 identifies the node, or script file 116, in the code corresponding to page 108. During registration of the node, the server computer 102 may retrieve a reference from the code to the script file 116 and add the node corresponding to the script file 116 to the graph 120 associated with the page 108. have. The server computer 102 may also add a reference to the script file 116 to the table 122 associated with the page 108. Thus, server computer 102 may generate graph 120 and table 122 that include nodes or other representations for each of script file 116 referenced by particular page 108. .

또한 상기 서버 컴퓨터(102)는 스크립트 파일(116)들 간 의존관계를 구하도록 구성될 수 있다. 구체적으로, 서버 컴퓨터(102)는 런타임 동안 또는 스크립트 파일 의존관계를 결정하기 위한 그 밖의 다른 때에 참조될 수 있는 스크립트 파일 의존관계를 나타내는 XML 매니페스트, 리스트, 또는 그 밖의 다른 데이터를 획득할 수 있다. 일부 실시예에서, 서버 컴퓨터(102)는 런타임 또는 그 밖의 다른 때에 스크립트 파일 의존관계의 수동 기술(manual description)을 가능하게 한다. 일부 실시예에서, 특정 스크립트 파일(116)이 그 밖의 다른 스크립트 파일(116)에 의존적인지 여부를 판정하기 위해, 서버 컴퓨터(102)는 페이지(108) 내 각각의 스크립트 파일(116) 참조를 분석할 수 있다. The server computer 102 may also be configured to obtain dependencies between script files 116. In particular, server computer 102 may obtain XML manifests, lists, or other data representing script file dependencies that may be referenced during runtime or at other times for determining script file dependencies. In some embodiments, server computer 102 enables manual description of script file dependencies at runtime or elsewhere. In some embodiments, server computer 102 analyzes each script file 116 reference in page 108 to determine whether a particular script file 116 is dependent on other script files 116. can do.

일부 실시예에서, 의존관계를 구하고 페이지(108)에 의해 참조되는 스크립트 파일(116)에 대한 로드 순서를 결정하기 위해 서버 컴퓨터(102)는 페이지(108)에서 식별되는 각각의 노드 또는 스크립트 파일(116)을 되부름(recurse)하거나, 및/또는 앞서 설명한 바와 같이 XML 매니페스트, 리스트, 또는 그 밖의 다른 파일을 기초로 하는 유사한 단계를 완료한다. 페이지(108)에 대응하는 서버-측 실행 가능 코드를 처리하거나, 및/또는 특정 페이지(108)에 대해 그 밖의 다른 방식으로 스크립트 파일(116)을 등록하는 동안, 서버 컴퓨터(102)는 스크립트 파일(116)에 대응하는 노드를 하나 이상의 다양한 데이터 구조, 가령, 케이블(122) 및/또는 앞서 언급된 그래프(120)에 추가할 수 있다. 등록 후, 서버 컴퓨터(102)는 결정된 스크립트 파일(116) 의존관계 및/또는 로드 레벨을 구현하기 위한 출력을 생성할 수 있다. In some embodiments, to determine dependencies and determine the load order for script file 116 referenced by page 108, server computer 102 may include each node or script file (identified in page 108) ( Recurse 116 and / or complete similar steps based on an XML manifest, list, or other file as described above. While processing server-side executable code corresponding to page 108, and / or registering script file 116 in other ways for a particular page 108, server computer 102 may script file. Nodes corresponding to 116 may be added to one or more various data structures, such as cable 122 and / or graph 120 mentioned above. After registration, server computer 102 may generate output to implement the determined script file 116 dependency and / or load level.

이하에서 더 상세히 기재되겠지만, 출력 동안, 서버 컴퓨터(102)는 데이터 구조를 처리하도록 구성될 수 있다. 예를 들어, 서버 컴퓨터(102)는 그래프(120)를 처리할 수 있다. 일부 실시예에서, 서버 컴퓨터(102)는 노드 채색을 이용해 그래프(120)를 처리한다. 일부 실시예에서, 서버 컴퓨터(102)는 참조를 테이블(122)에 추가함으로써 스크립트 파일(116)을 등록하고, 그 후 스크립트 파일(116)로의 참조를 그래프(120)에서 추가한다. 서버 컴퓨터(102)는 그래프(120)에 추가된 노드를 채색하고, 상기 노드의 의존관계를 구하며, 상기 노드와 연관된 자식 노드(child node) 각각을 방문할 수 있다. 특정 노드에 대한 자식 노드를 방문한 후, 상기 서버 컴퓨터(102)는 상기 스크립트 파일(116)에 대한 적절한 스크립트 참조를 페이지 출력으로 출력할 수 있다. As will be described in more detail below, during output, server computer 102 may be configured to process data structures. For example, server computer 102 may process graph 120. In some embodiments, server computer 102 processes node 120 using node coloring. In some embodiments, server computer 102 registers script file 116 by adding a reference to table 122, and then adds a reference to script file 116 in graph 120. The server computer 102 can color the nodes added to the graph 120, find the dependencies of the nodes, and visit each of the child nodes associated with the node. After visiting a child node for a particular node, the server computer 102 may output an appropriate script reference to the script file 116 as a page output.

일부 실시예에서, 서버 컴퓨터(102)는 노드 의존관계를 구하는 것과 연관된 분석이 노드 각각에 대하여 한 번씩만 제공됨을 보장하기 위해 노드 채색을 사용한다. 본 명세서에서 사용될 때, "노드 채색"은 본 명세서에서 기재되는 분석 동안 소비되는 시간과 자원을 감소시키기 위해 서버 컴퓨터(102)에 의해 사용되는 프로세스를 포함할 수 있다. "노드 채색"을 이용함으로써, 상기 서버 컴퓨터(102)는 페이지(108) 내에서 또는 이에 의해 특정 스크립트 파일(116)이 여러 번 참조되는 경우라도, 그래프(120), 테이블(122), 그 밖의 다른 데이터 구조, 및/또는 페이지(108) 내에서 참조되는 그 밖의 다른 스크립트 파일(116), 상기 특정 스크립트 파일(116) 또는 이와 연관된 노드가 등록될 수 있고, 상기 스크립트 파일(116)에 대한 의존관계가 단 한 번만 구해질 수 있다.In some embodiments, server computer 102 uses node coloring to ensure that analysis associated with finding node dependencies is provided only once for each node. As used herein, “node coloring” may include a process used by server computer 102 to reduce the time and resources consumed during the analysis described herein. By using " node coloring ", the server computer 102 can display graphs 120, tables 122, and the like, even if a particular script file 116 is referenced multiple times within or by page 108. FIG. Other data structures, and / or other script files 116 referenced within page 108, the particular script file 116, or nodes associated therewith, may be registered and dependent on the script file 116. The relationship can only be found once.

일부 구현예에서, 예를 들어, 서버 컴퓨터(102)가 페이지(108)에서 참조되는 스크립트 파일(116)과 연관된 그래프(120)에서 노드를 선택하고 상기 노드가 이미 방문된 것인지 여부를 판정한다. 노드가 이미 방문된 것인 경우, 서버 컴퓨터(102)는 상기 노드의 분석을 종료할 수 있다. 노드가 이미 방문된 것이 아닌 경우, 서버 컴퓨터(102)는 노드를 방문한 것으로 "채색"하고 상기 노드와 연관된 의존관계를 구할 수 있다. 페이지(108) 내 각각의 식별된 노드 간 의존관계를 구한 후, 상기 서버 컴퓨터(102)는 데이터(118)를 출력 및/또는 상기 데이터(118)를 데이터 저장 장치에 저장할 수 있다.In some implementations, for example, server computer 102 selects a node in graph 120 associated with script file 116 referenced in page 108 and determines whether the node has already been visited. If the node has already been visited, server computer 102 may terminate the node's analysis. If the node is not already visited, server computer 102 may " colored &quot; visited the node and obtain a dependency associated with that node. After obtaining the dependencies between each identified node in page 108, the server computer 102 may output data 118 and / or store the data 118 in a data storage device.

서버 컴퓨터(102)는 클라이언트 장치(110)로 데이터(118)를 제공할 수 있다. 상기 데이터(118)는 사용자 선호, 설정, 및/또는 그 밖의 다른 고려사항에 따라서, 페이지(108)와 함께, 및/또는 다양한 시점에서 따로따로 제공될 수 있다. 클라이언트 장치(110)는 데이터(118)를 이용하여 페이지(108)와 연관된 스크립트 파일(116)에 대한 로드 순서를 결정할 수 있다. 따라서 상기 클라이언트 장치(110)는 일부 실시예에 따르면 스크립트 파일(116)을 이론적으로 최상의 순서로 로딩함으로써 페이지(108)와 연관된 기능을 최적의 성능 및/또는 신뢰성과 함께 제공할 수 있는 순서로 스크립트 파일(116)을 로딩할 수 있다. 스크립트 파일(116)의 의존관계 및 로드 시점을 관리하는 이러한 그리고 그 밖의 다른 양태가 특히 도 2-6을 참조하여 이하에서 더 상세히 설명된다. Server computer 102 may provide data 118 to client device 110. The data 118 may be provided separately with the page 108 and / or at various points in time, depending on user preferences, settings, and / or other considerations. The client device 110 can use the data 118 to determine the load order for the script file 116 associated with the page 108. Accordingly, the client device 110 may, in some embodiments, load the script file 116 in a theoretically best order, thereby providing the functionality associated with the page 108 with the optimal performance and / or reliability. File 116 may be loaded. These and other aspects of managing the dependencies and load points of script file 116 are described in more detail below with particular reference to FIGS. 2-6.

도 1은 하나의 서버 컴퓨터(102), 하나의 네트워크(104) 및 하나의 클라이언트 장치(110)를 도시한다. 그러나 동작 환경(100)의 어떤 구현예는 복수의 서버 컴퓨터(102), 복수의 네트워크(104), 및/또는 복수의 클라이언트 장치(110)를 포함함을 이해해야 한다. 따라서 도시된 실시예는 예시이며 어떠한 식으로도 한정으로 해석되어서는 안 된다.1 shows one server computer 102, one network 104, and one client device 110. However, it should be understood that some implementations of operating environment 100 include a plurality of server computers 102, a plurality of networks 104, and / or a plurality of client devices 110. Accordingly, the illustrated embodiments are exemplary and should not be construed as limiting in any way.

도 2를 다시 참조하면, 스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 방법(200)의 양태가 상세히 기재될 것이다. 본 명세서에 개시되는 방법의 동작이 반드시 임의의 특정 순서로 제공되어야 하는 것은 아니며 동작들 중 일부 또는 전부를 대안적 순서(들)로 수행하는 것이 가능하고 고려되어야 함이 이해되어야 한다. 동작들은 기재와 설명의 편의를 위해 시범 순서로 제공되었다. 이하의 청구항의 범위 내에서, 동작들은 추가, 생략, 및/또는 동시에 수행될 수 있다. Referring again to FIG. 2, aspects of a method 200 for managing script file dependencies and load points will be described in detail. It is to be understood that the operations of the methods disclosed herein are not necessarily provided in any particular order, and that it is possible and contemplated to perform some or all of the operations in alternative order (s). The actions are presented in demonstration order for ease of description and description. Within the scope of the following claims, operations may be added, omitted, and / or performed concurrently.

또한 설명된 방법은 어느 때라도 종료될 수 있고 각각 전체적으로 수행될 필요는 없음이 이해되어야 한다. 방법의 일부 또는 모든 동작, 및/또는 실질적으로 균등한 동작이 컴퓨터 저장 매체 상에 포함되는 컴퓨터 판독형 명령어의 실행에 의해 본 명세서에서 정의된 바와 같이 수행될 수 있다. "컴퓨터 판독형 명령어" 및 이의 변형예가, 상세한 설명 및 청구범위에서 사용될 때, 루틴, 애플리케이션, 애플리케이션 모듈, 프로그램 모듈, 프로그램, 구성요소, 데이터 구조, 알고리즘 등을 포함하기 위해 본 명세서에서 포괄적으로 사용된다. 컴퓨터 판독형 명령어는 다양한 시스템 구성, 가령, 단일-프로세서 또는 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 개인 컴퓨터, 핸드-헬드 컴퓨팅 장치, 마이크로프로세서-기반, 프로그램 가능 소비자 전자기기, 이들의 조합 등 상에서 구현될 수 있다. It should also be understood that the described method can be terminated at any time and need not be performed on each of them in their entirety. Some or all of the operations, and / or substantially equivalent operations, may be performed as defined herein by execution of computer readable instructions included on a computer storage medium. "Computer-readable instructions" and variations thereof, as used in the description and claims, are used herein globally to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. do. Computer-readable instructions may be used in a variety of system configurations, such as single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like. It can be implemented in.

따라서 본 명세서에서 기재된 논리적 동작이 (1) 컴퓨터 구현 동작의 시퀀스 또는 컴퓨팅 시스템 상에서 실행되는 프로그램 모듈로서, 및/또는 (2) 컴퓨팅 시스템 내 상호연결된 기계 로직 회로 또는 회로 모듈로서 구현된다. 구현예는 컴퓨팅 시스템의 성능 및 그 밖의 다른 요건에 따라 달라지는 선택의 문제이다. 따라서 본 명세서에 기재되는 논리적 동작은 상태, 동작, 구조적 장치, 작업 또는 모듈이라고 다양하게 지칭된다. 이들 동작, 구조적 장치, 작업, 및 모듈은 소프트웨어, 펌웨어, 특수 용도 디지털 로직, 및 이들의 임의의 조합으로 구현될 수 있다.Thus, the logical operations described herein are implemented as (1) a sequence of computer-implemented operations or program modules executed on a computing system, and / or (2) as interconnected machine logic circuits or circuit modules within the computing system. Implementation is a matter of choice dependent on the performance of the computing system and other requirements. Thus, the logical operations described herein are variously referred to as states, operations, structural devices, tasks, or modules. These operations, structural devices, tasks, and modules may be implemented in software, firmware, special purpose digital logic, and any combination thereof.

본 발명의 개념을 도시하고 설명하기 위한 목적으로, 본 명세서에 개시된 방법이 서버 컴퓨터(102)에 의해 수행되는 것으로 기재된다. 이들 실시예는 예시이며, 어떠한 식으로도 제한으로 해석되어서는 안 된다. 상기 방법(200)은, 서버 컴퓨터(102)가 스크립트 파일 의존관계 결정 및/또는 특정 페이지(108) 또는 그 밖의 다른 자원과 연관된 스크립트 파일 로드 시점 결정을 개시하는 동작(202)에서 시작한다. 일부 실시예에서, 서버 컴퓨터(102)는 서버 컴퓨터(102)의 클라이언트, 가령, 클라이언트 장치(110), 관리자, 사이트 운영자, 또는 그 밖의 다른 개체 등으로부터 스크립트 파일 의존관계를 결정 및/또는 로드 시점을 결정하기 위한 명령어를 수신한다. For the purpose of illustrating and illustrating the concepts of the invention, it is described that the methods disclosed herein are performed by server computer 102. These examples are illustrative and should not be construed as limiting in any way. The method 200 begins at operation 202 where the server computer 102 initiates a script file dependency determination and / or a script file load point determination associated with a particular page 108 or other resource. In some embodiments, server computer 102 determines and / or loads script file dependencies from clients of server computer 102, such as client device 110, administrators, site operators, or other entities. Receive an instruction for determining

또한 서버 컴퓨터(102)는 자원, 가령, 페이지(108)에 대한 요청을 기초로 하여 의존관계 및/또는 로드 시점 결정을 개시할 수 있다. 상기 요청은 애플리케이션 콜(application call), 스케줄링된 이벤트의 도래 또는 실행, 및/또는 서버 컴퓨터(102)가 본 명세서에 기재된 기능을 실행하도록 촉진시키기 위한 그 밖의 다른 다양한 요청 또는 명령어에 응답하여 수신될 수 있다. 본 명세서에 기재된 기능이 다양한 명령어에 응답하여, 및/또는 그 밖의 다른 다양한 고려사항을 기초로 다양한 시점에서 제공될 수 있기 때문에, 이들 실시예는 예시이며, 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. Server computer 102 may also initiate dependencies and / or load time decisions based on resources, such as requests for page 108. The request may be received in response to an application call, the arrival or execution of a scheduled event, and / or various other requests or instructions for facilitating the server computer 102 to execute the functions described herein. Can be. Because the functionality described herein may be provided at various points in time in response to various instructions, and / or based on various other considerations, these embodiments are illustrative and should not be construed as limiting in any way. Can not be done.

동작(202)으로부터, 방법(200)은 서버 컴퓨터(102)가 페이지(108)와 연관된 스크립트 파일(116)을 등록하는 동작(204)으로 진행한다. 다양한 실시예에 따르면, 서버 컴퓨터(102)는 페이지(108)에 대응하는 코드를 분석하기 위해 복수의 함수를 호출 및/또는 하나 이상의 알고리즘을 실행시키도록 구성된다. 페이지(108)에 대응하는 코드의 분석 동안, 상기 서버 컴퓨터(102)는 페이지(108) 내 스크립트 파일(116)로의 참조를 식별할 수 있다. 각각의 식별된 스크립트 파일(116)은 방향성 그래프, 가령, 그래프(120) 및 리스트, 매니페스트, 또는 테이블, 가령, 테이블(122)에 추가될 수 있다. 스크립트 파일(116)의 등록은 도 3을 참조하여 이하에서 더 상세히 기재된다.From operation 202, the method 200 proceeds to operation 204 where the server computer 102 registers the script file 116 associated with the page 108. According to various embodiments, server computer 102 is configured to call a plurality of functions and / or execute one or more algorithms to analyze code corresponding to page 108. During analysis of the code corresponding to page 108, the server computer 102 may identify a reference to the script file 116 in page 108. Each identified script file 116 may be added to a directional graph, such as graph 120 and a list, manifest, or table, such as table 122. Registration of the script file 116 is described in more detail below with reference to FIG.

동작(204)으로부터, 상기 방법(200)은, 서버 컴퓨터(102)가 동작(204)에서 등록된 스크립트 파일(116) 각각을 되부름하는 동작(206)으로 진행한다. 본 명세서에서 사용될 때 "되부름(recursing)"은 동작(204)에서 식별된 스크립트 파일(116) 각각을 분석하고 스크립트 파일(116) 각각과 연관된 의존관계를 구하는 것을 지칭한다. 덧붙여, 되부름 동안, 스크립트 파일(116)이 되부름됨으로써 참조되는 임의의 스크립트 파일(116)이 역시 분석되고, 이들 스크립트 파일(116)들의 의존관계가 역시 구해질 수 있다. 따라서 스크립트 파일(116) 각각의 되부름 동안, 스크립트 파일 참조가 페이지(108) 내에서 발생하거나 및/또는 페이지(108)에 의해 참조되는 스크립트 파일(116)에 의해 참조되는지에 상관없이, 임의의 스크립트 파일(116) 의존관계가 구해질 수 있다. 따라서 스크립트 파일(116)의 되부름 동안, 서버 컴퓨터(102)에 의해 복수의 스크립트 파일(116)이 분석될 수 있다. From operation 204, the method 200 proceeds to operation 206 in which the server computer 102 recalls each of the script files 116 registered in operation 204. As used herein, “recursing” refers to analyzing each of the script files 116 identified in operation 204 and obtaining dependencies associated with each of the script files 116. In addition, during the recall, any script file 116 referenced by the script file 116 being recalled is also analyzed, and dependencies of these script files 116 can also be obtained. Thus, during each recall of script file 116, any script file reference occurs within page 108 and / or is referenced by script file 116 referenced by page 108, regardless of whether The script file 116 dependency can be obtained. Thus, during the recall of the script file 116, the plurality of script files 116 may be analyzed by the server computer 102.

다양한 실시예에 따르면, 서버 컴퓨터(102)는 되부름 동작 동안 각각의 노드 또는 스크립트 파일(116)을 한 번씩, 일부 실시예에서는 단 한 번씩만 방문하기 위해 노드 채색을 사용하도록 구성된다. 따라서 본 명세서에 개시된 개념과 기술의 실시예에 의해, 각각의 스크립트 파일(116)의 분석을 하나의 동작을 제한함으로써 식별 및 의존관계 구하기(dependency resolution)가 효과적이고 철저한 방식으로 가능해진다. 스크립트 파일(116)의 되부름이 이하에서 도 4를 참조하여 더 상세히 기재된다. According to various embodiments, server computer 102 is configured to use node coloring to visit each node or script file 116 once, and in some embodiments only once, during a recall operation. Thus, with the embodiments of the concepts and techniques disclosed herein, identification and dependency resolution are enabled in an effective and exhaustive manner by limiting the analysis of each script file 116 to one operation. The recall of script file 116 is described in more detail below with reference to FIG.

동작(206)으로부터, 상기 방법(200)은 서버 컴퓨터(102)가 출력을 생성하는 동작(208)으로 진행한다. 일부 실시예에서, 서버 컴퓨터(102)에 의해 생성되는 출력은 페이지(108)와 연관된 페이지 출력에 스크립트 참조를 출력하는 것을 포함한다. 예를 들어, 출력은 경우에 따라 페이지 출력의 <head> 내에 또는 페이지(108) 내 그 밖의 다른 곳에, <script> 태그를 포함할 수 있다. 또 다른 실시예에서, 동작(210)에서 생성되는 출력은, 도 1을 참조하여 앞서 기재된 데이터(118)를 포함할 수 있지만, 이에 제한되지는 않는다. 따라서, 동작(210)에서 생성되는 출력은 앞서 언급되고 도 5-6을 참조하여 더 상세히 기재된 그래프(120) 및/또는 테이블(122)을 포함할 수 있다. 간략히, 그래프(120) 및 테이블(122)은 서버 컴퓨터(102)에 의해 출력될 수 있고 클라이언트 장치(110)로 전송될 수 있는 데이터 구조를 포함할 수 있다. From operation 206, the method 200 proceeds to operation 208 where the server computer 102 generates an output. In some embodiments, the output generated by server computer 102 includes outputting a script reference to the page output associated with page 108. For example, the output may optionally include a <script> tag within the <head> of the page output or elsewhere within the page 108. In another embodiment, the output generated at operation 210 may include, but is not limited to, data 118 described above with reference to FIG. 1. Thus, the output generated at operation 210 may include graph 120 and / or table 122 described above and described in more detail with reference to FIGS. 5-6. Briefly, graph 120 and table 122 may include a data structure that may be output by server computer 102 and transmitted to client device 110.

클라이언트 장치(110)는 스크립트 파일(116)에 대한 로드 순서를 결정하기 위해 그래프(120) 및/또는 테이블(122)을 사용할 수 있다. 따라서 동작(208)에서 출력되는 데이터(118)는 스크립트 파일 의존관계 및/또는 그 밖의 다른 고려사항을 기초로 서버 컴퓨터(102)에 의해 결정된 순서로 스크립트 파일(116)을 로드하도록 사용될 수 있다. 상기 데이터(118)는 서버 컴퓨터(102)에 저장되거나, 서버 컴퓨터(102)에 의해 액세스 가능한 데이터 저장 장치에 저장되거나 및/또는 서버 컴퓨터(102)에 의해 저장장치가 구비되거나 구비되지 않은 클라이언트 장치(110)로 전송될 수 있다. 동작(208)으로부터, 상기 방법(200)은 동작(210)으로 진행된다. 상기 방법(200)은 동작(210)에서 종료된다. Client device 110 may use graph 120 and / or table 122 to determine the load order for script file 116. Thus, the data 118 output at operation 208 may be used to load the script file 116 in the order determined by the server computer 102 based on script file dependencies and / or other considerations. The data 118 is stored on the server computer 102, stored in a data storage device accessible by the server computer 102, and / or a client device with or without storage by the server computer 102. May be sent to 110. From operation 208, the method 200 proceeds to operation 210. The method 200 ends at operation 210.

도 3을 다시 참조하면, 페이지와 연관된 스크립트 파일을 등록하기 위한 방법(300)의 양태가 상세히 기재될 것이다. 앞서 도 2를 참조하여 언급된 바와 같이, 도 3을 참조하여 본 명세서에서 기재된 동작이 방법(200)의 동작(204)에서 실행될 수 있지만, 반드시 그런 것은 아니다. 따라서 본 명세서에 기재된 도 3의 실시예는 예시이며, 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. Referring again to FIG. 3, aspects of a method 300 for registering a script file associated with a page will be described in detail. As mentioned above with reference to FIG. 2, the operations described herein with reference to FIG. 3 may be performed in operation 204 of method 200, although this is not necessarily the case. Accordingly, the embodiment of FIG. 3 described herein is illustrative and should not be construed as limiting in any way.

방법(300)은 서버 컴퓨터(102)가 특정 페이지(108) 내 스크립트 파일(116)을 식별하는 동작(302)으로부터 시작한다. 상기 서버 컴퓨터(102)는 스크립트 파일(116)을 검색하고 식별하기 위해, 페이지(108)와 연관된 코드 내 다양한 위치에서 페이지(108)의 분석을 시작할 수 있다. 일부 실시예에서, 서버 컴퓨터(102)는 페이지(108)와 연관된 코드의 시작 부분에서 동작(302)의 분석을 시작한다. 또 다른 실시예에서, 서버 컴퓨터(102)는 페이지(108)와 연관된 소스 코드의 헤더, 바디, 또는 또 다른 부분에서의 분석을 시작하며, 또 다른 실시예에서, 분석이 랜덤 입력 포인트에서 시작된다. 페이지(108)의 분석이 시작될 위치에 대한 결정은 사용자 설정 또는 그 밖의 다른 옵션뿐 아니라 그 밖의 다른 고려사항에 따라 이뤄질 수 있다. 분석이 시작되는 방식 및/또는 위치와 무관하게, 서버 컴퓨터(102)는 페이지(108)를 분석하고 스크립트 파일(116)을 식별할 수 있다. The method 300 begins with an operation 302 in which the server computer 102 identifies the script file 116 in a particular page 108. The server computer 102 can begin analyzing the page 108 at various locations in the code associated with the page 108 to retrieve and identify the script file 116. In some embodiments, server computer 102 begins the analysis of operation 302 at the beginning of the code associated with page 108. In another embodiment, server computer 102 begins an analysis in the header, body, or another portion of the source code associated with page 108, and in another embodiment, the analysis begins at a random entry point. . The determination of where the analysis of page 108 should begin may be made in accordance with user considerations or other options as well as other considerations. Regardless of how and / or where analysis begins, server computer 102 may analyze page 108 and identify script file 116.

상기 서버 컴퓨터(102)는 파일 포맷, 확장자 등을 기초로 하여, 페이지(108) 내 스크립트 파일(116)로의 참조를 인식하도록 구성될 수 있다. 또 다른 실시예에서, 서버 컴퓨터(102)는 페이지(108)와 연관된 서버-측 실행 가능 코드에서 레지스터(Register)로의 호출(call)을 생성하여, 스크립트 파일(116)을 식별하기 위해 스크립트 파일(116)을 검색하거나 및/또는 페이지(108)를 분석하지 않고도 스크립트 파일(116)을 식별한다. 일부 실시예에서, 앞서 언급된 바와 같이, 스크립트 파일(116)은 JAVASCRIPT 파일이고 따라서 .js 확장자를 가질 수 있다. 따라서 서버 컴퓨터(102)는, 가령, JAVASCRIPT 확장자에 대응하는 텍스트 ".js"를 페이지(108)에서 검색함으로써, 스크립트 파일로의 참조를 인지할 수 있다. 스크립트 파일(116)의 그 밖의 다른 포맷 및/또는 유형이 가능하고 고려되기 때문에, 이 실시예는 예시이며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다.The server computer 102 may be configured to recognize a reference to the script file 116 in page 108 based on file format, extension, and the like. In another embodiment, server computer 102 generates a call to a register in the server-side executable code associated with page 108 to identify the script file 116 in order to identify the script file 116. Script file 116 is identified without searching 116 and / or analyzing page 108. In some embodiments, as mentioned above, script file 116 is a JAVASCRIPT file and may therefore have a .js extension. Thus, server computer 102 can recognize a reference to a script file, for example, by searching page 108 for text " .js " corresponding to a JAVASCRIPT extension. As other formats and / or types of script file 116 are possible and contemplated, this embodiment is illustrative and should not be construed as limiting in any way.

동작(302)으로부터, 상기 방법(300)은 동작(304)으로 진행되며, 서버 컴퓨터(102)는 동작(302)에서 식별되는 스크립트 파일(116)에 대응하는 노드를 방향성 그래프, 가령, 그래프(120)에 추가한다. 도 5를 참조하여 노드가 도시되고 이하에서 더 상세히 기재된다. 간략히 말하면, 서버 컴퓨터(102)는 동작(302)에서 식별되는 스크립트 파일(116)의 표현을 방향성 그래프에 추가할 수 있다. 의존관계를 구하는 프로세스, 가령, 도 4를 참조하여 이하에서 기재될 방법(400) 동안 스크립트 파일(116)과 연관된 의존관계가 결정될 수 있다. 따라서 노드들 및 노드들 간 의존관계가 방향성 그래프에 포함될 수 있다. 방향성 그래프는 도 4-5를 참조하여 이하에서 더 상세히 도시 및 기재될 것이다.From operation 302, the method 300 proceeds to operation 304, wherein the server computer 102 selects a node corresponding to the script file 116 identified in operation 302 from a directional graph, such as a graph ( 120). The node is shown with reference to FIG. 5 and described in more detail below. In brief, server computer 102 may add a representation of script file 116 identified in act 302 to the directional graph. Dependencies associated with the script file 116 may be determined during the process of determining dependencies, such as the method 400 described below with reference to FIG. 4. Thus, nodes and their dependencies can be included in the directional graph. The directional graph will be shown and described in more detail below with reference to FIGS. 4-5.

동작(304)으로부터, 상기 방법(200)은 서버 컴퓨터(102)가 동작(302)에서 식별된 스크립트 파일(116)로의 참조를 리스트, 매니페스트, 테이블, 또는 그 밖의 다른 데이터 구조, 가령 테이블(122)에 추가하는 동작(306)으로 진행된다. 일부 실시예에서, 스크립트 파일(116)로의 참조는 이름에 의한 스크립트 파일(116)의 식별을 포함한다. 스크립트 파일(116)로의 참조가 스크립트 파일(116)과 연관된 로드 레벨(load level)로 테이블(122)에 추가될 수 있다. 일부 실시예에서, 도 4를 참조하여 이하에서 더 상세히 도시되고 기재될 바와 같이 스크립트 파일(116)과 연관된 로드 레벨이 스크립트 파일(116)의 되부름 동안 결정될 수 있다. 따라서 동작(306)에서 테이블(122)로 추가되는 참조는 로드 레벨 표시를 포함하지 않을 수 있으며, 따라서 이하에서 더 상세히 기재될 바와 같이, 노드 및/또는 스크립트 파일(116)의 되부름 동안 정제(refine)되거나 정제되지 않을 수 있다.From operation 304, the method 200 includes a list, manifest, table, or other data structure, such as table 122, in which server computer 102 references the script file 116 identified in operation 302. Proceed to step 306 of adding. In some embodiments, reference to script file 116 includes identification of script file 116 by name. References to script file 116 may be added to table 122 at the load level associated with script file 116. In some embodiments, the load level associated with script file 116 may be determined during recall of script file 116 as shown and described in more detail below with reference to FIG. 4. Thus, the reference added to the table 122 in operation 306 may not include a load level indication, and thus may be refined during the recall of the node and / or script file 116, as described in more detail below. may or may not be refined.

동작(306)으로부터, 상기 방법(300)은 서버 컴퓨터(102)가 페이지(108)가 추가 스크립트 파일(116)을 포함하는지 여부를 판정하는 동작(308)으로 진행한다. 실시예에 따르면, 서버 컴퓨터(102)는 페이지(108)에 포함된 복수의 스크립트 파일(116)을 결정하기 위해 페이지(108)를 분석하거나, 및/또는 페이지(108) 내 스크립트 파일(116)을 식별하고 페이지(108)에서 추가 스크립트 파일(116)을 검색하는 것을 계속할 수 있다. 따라서 동작(308)은 추가 스크립트 파일(116)을 검색하기 위해 페이지(108)를 분석하는 것 및/또는 페이지(108)에서 식별된 각각의 스크립트 파일(116)이 등록되었는지 여부를 판정하는 것을 포함할 수 있다. 서버 컴퓨터(102)가 동작(308) 중에, 추가 스크립트 파일(116)이 페이지(108)에 포함됐음을 결정한 경우, 상기 방법(300)은 동작(302)으로 복귀할 수 있으며, 여기서 서버 컴퓨터(102)가 또 다른 스크립트 파일(116)을 식별할 수 있다. 서버 컴퓨터(102)가 동작(308)의 임의의 반복구간(iteration)에서, 또 다른 스크립트 파일(116)이 페이지(108)에 포함되지 않음을 결정할 때까지 동작(302-308)은 반복될 수 있다.From operation 306, the method 300 proceeds to operation 308, where the server computer 102 determines whether the page 108 includes the additional script file 116. According to an embodiment, server computer 102 analyzes page 108 to determine a plurality of script files 116 included in page 108, and / or script file 116 within page 108. And continue to retrieve additional script file 116 on page 108. Thus operation 308 includes analyzing page 108 to retrieve additional script file 116 and / or determining whether each script file 116 identified in page 108 has been registered. can do. If server computer 102 determines that additional script file 116 is included in page 108 during operation 308, the method 300 may return to operation 302 where the server computer ( 102 may identify another script file 116. In any iteration of operation 308, operations 302-308 may be repeated until server script 102 determines that another script file 116 is not included in page 108. have.

서버 컴퓨터(102)가 동작(308)의 임의의 반복구간에서, 또 다른 스크립트 파일(116)이 상기 페이지(108)에 포함되지 않는다고 결정한 경우, 상기 방법(300)은 동작(310)으로 진행한다. 상기 방법(300)은 동작(310)에서 종료된다.If server computer 102 determines at any iteration of operation 308 that another script file 116 is not included in page 108, the method 300 proceeds to operation 310. . The method 300 ends at operation 310.

한 가지 고려되는 실시예에 따르면, 서버 컴퓨터(102)는 컴퓨터 실행 가능 코드의 실행을 통해 방법(300)을 참조하여 앞서 기재된 기능들 중 일부 또는 전부를 제공하거나 제공하지 않는다. 컴퓨터 실행 가능 코드의 하나의 실시예가 이하에서 표 1에서 제공된다. 표 1에 제공된 컴퓨터 실행 가능 코드는, 표 2에 나타난 바와 같이, 가정된 글로벌(global) 및 정의 함수(defined function)를 기초로 할 수 있으나, 반드시 그런 것은 아니다. 예시적 코드 및 글로벌 및 정의 함수의 예시는 한 가지 고려되는 예시에 불과하기 때문에, 이들 예시는 어떠한 식으로도 제한하려는 것으로 해석되어서는 안 된다. According to one contemplated embodiment, server computer 102 provides or does not provide some or all of the functions described above with reference to method 300 through execution of computer executable code. One embodiment of computer executable code is provided in Table 1 below. The computer executable code provided in Table 1 may, but is not necessarily, based on hypothesized global and defined functions, as shown in Table 2. Because the example code and examples of global and definition functions are merely one example considered, these examples should not be construed as limiting in any way.

Figure 112014067248860-pct00001
Figure 112014067248860-pct00001

Figure 112014067248860-pct00002
Figure 112014067248860-pct00002

도 4를 참조하여, 스크립트 파일 의존관계를 구하기 위한 방법(400)의 양태가 상세히 기재될 것이다. 앞서 도 2를 참조하여 언급된 바와 같이, 도 4를 참조하여 본 명세서에 기재된 동작은, 방법(200)의 동작(206)에서 실행될 수 있지만, 반드시 그런 것은 아니다. 따라서 도 4에 도시된 실시예는 예시이며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다.With reference to FIG. 4, aspects of a method 400 for obtaining script file dependencies will be described in detail. As mentioned above with reference to FIG. 2, the operations described herein with reference to FIG. 4 may, but are not necessarily, be performed at operation 206 of method 200. Accordingly, the embodiment shown in FIG. 4 is an illustration and should not be construed as limiting in any way.

상기 방법(400)은 서버 컴퓨터(102)가 페이지(108)로부터 스크립트 파일(116)을 선택하는 동작(402)에서부터 시작된다. 앞서 도 3을 참조하여 설명된 바와 같이, 상기 서버 컴퓨터(102)는 상기 페이지(108) 내 스크립트 파일(116)을 식별하기 위해 페이지(108)를 분석하거나, 및/또는 페이지(108)를 분석하는 것을 시작하고 상기 페이지(108)에서 제 1 스크립트 파일(116)을 식별할 수 있다. 스크립트 파일(116)이 서버 컴퓨터(102)에 의해 식별되는 방식에 무관하게, 동작(402)에서 페이지(108) 내 하나 이상의 스크립트 파일(116) 중 하나가 서버 컴퓨터(102)에 의해 선택될 수 있다.The method 400 begins with an operation 402 in which the server computer 102 selects a script file 116 from a page 108. As described above with reference to FIG. 3, the server computer 102 analyzes page 108 and / or analyzes page 108 to identify script file 116 in the page 108. May begin to identify the first script file 116 on the page 108. Regardless of how the script file 116 is identified by the server computer 102, in operation 402 one of the one or more script files 116 in the page 108 may be selected by the server computer 102. have.

동작(402)으로부터, 상기 방법(400)은 서버 컴퓨터(102)가 동작(402)에서 선택되는 스크립트 파일(116)이 서버 컴퓨터(102)에 의해 이전에 분석되었는지 여부를 판정하는 동작(404)으로 진행된다. 앞서 언급된 바와 같이, 상기 서버 컴퓨터(102)는 페이지(108) 내 스크립트 파일(116)로 노드 채색을 적용하여, 특정 스크립트 파일(116)의 분석을 단일 반복구간 또는 분석 인스턴스로 제한하도록 구성될 수 있다. 따라서, 서버 컴퓨터(102)의 일부 실시예가 특정 노드 또는 스크립트 파일(116)이 2회 이상 분석되지 못하게 하는 효과적인 방식으로 페이지(108)를 분석하도록 구성된다.From operation 402, the method 400 determines whether the server computer 102 determines whether the script file 116 selected in operation 402 was previously analyzed by the server computer 102. Proceeds. As mentioned above, the server computer 102 may be configured to apply node coloring to the script file 116 in the page 108 to limit the analysis of a particular script file 116 to a single iteration or analysis instance. Can be. Thus, some embodiments of server computer 102 are configured to analyze page 108 in an effective manner that prevents a particular node or script file 116 from being analyzed more than once.

서버 컴퓨터(102)가 동작(402)에서 선택된 스크립트 파일(116)이 이전에 분석된 적이 있다고 동작(404)에서 결정한 경우, 이하에서 설명될 바와 같이, 서버 컴퓨터(102)는 스크립트 파일(116)의 추가 분석을 스킵할 수 있다. 서버 컴퓨터(102)가, 동작(402)에서 선택된 스크립트 파일이 이전에 분석된 적이 없다고 동작(404)에서 결정한 경우, 상기 방법(400)은 동작(406)으로 진행된다.If the server computer 102 determines in operation 404 that the script file 116 selected in operation 402 has previously been analyzed, the server computer 102 may execute the script file 116 as described below. Can be skipped further analysis. If server computer 102 determines in operation 404 that the script file selected in operation 402 has not been previously analyzed, the method 400 proceeds to operation 406.

동작(406)에서, 서버 컴퓨터(102)가 스크립트 파일을 방문 또는 분석됐다고 마킹한다. 노드 또는 스크립트 파일(116)을 방문 및/또는 분석된 적 있다고 마킹하기 위한 서버 컴퓨터(102)의 기능이 본 명세서에서 "노드 채색"이라고 지칭된다. 방법(400)에서 특정 노드 및/또는 스크립트 파일(116)이 단 한 번만 분석됨을 보장하기 위해 본 명세서에 기재된 노드 채색 기능은 서버 컴퓨터(102)에 의해 구현될 수 있다. 따라서, 본 명세서에 기재된 스크립트 파일 의존관계 및 로드 레벨 결정 동안 발생하는 로드 레벨 업데이트의 횟수를 제한하기 위해 서버 컴퓨터(102)에 의해 노드 채색이 구현될 수 있다. 따라서 본 명세서에 기재되는 노드 채색은 서버 컴퓨터(102)에 의한 스크립트 파일 의존관계 및/또는 로드 레벨 결정의 효율 및/또는 신뢰도를 개선할 수 있다. In operation 406, the server computer 102 marks that the script file has been visited or analyzed. The ability of the server computer 102 to mark the node or script file 116 as visited and / or analyzed has been referred to herein as "node coloring." The node coloring function described herein may be implemented by the server computer 102 to ensure that a particular node and / or script file 116 in the method 400 is analyzed only once. Thus, node coloring may be implemented by server computer 102 to limit the number of load level updates that occur during script file dependency and load level determination described herein. Thus, node coloring described herein may improve the efficiency and / or reliability of script file dependencies and / or load level determination by server computer 102.

동작(406)으로부터, 상기 방법(400)은 서버 컴퓨터(102)가 스크립트 파일(116)과 연관된 의존관계를 구하는 동작(408)으로 진행한다. 특히, 서버 컴퓨터(102)는 스크립트 파일(116) 각각을 분석하고 상기 스크립트 파일(116)이 임의의 타 스크립트 파일(116)에 의존하는지 또는 상기 타 스크립트 파일(116)에 의해 의존되는지 여부를 판정한다. 일부 실시예에서, 서버 컴퓨터(102)는 XML 매니페스트, 리스트, 또는 스크립트 파일 의존관계를 나타내는 그 밖의 다른 데이터를 수신하거나, 및/또는 페이지(108)를 분석함으로써 상기 의존관계를 결정한다. 또한 스크립트 파일(116)로의 참조가 페이지(108) 내에, 및/또는 스크립트 파일(116) 자체 내에 존재할 수 있다. 따라서 서버 컴퓨터(102)는, 페이지(108) 및/또는 스크립트 파일(116)의 분석을 통해, 하나 이상의 스크립트 파일(116)의 의존관계를 결정할 수 있다. 또 다른 스크립트 파일(116)이 의존관계가 구해지는 스크립트 파일(116)에 의해 참조되는 경우, 동작(408)에서, 의존관계를 구하는 동안의 되부름과 관련하여 앞서 설명한 바와 같이, 참조되는 스크립트 파일(116)도 분석될 수 있다. 따라서 도면에서 도시되지 않지만, 필요한 경우, 본 명세서에 기재된 분석 및/또는 그 밖의 다른 목적으로, 서버 컴퓨터(102)가 스크립트 파일(116)의 복사본(copy)을 저장할 수 있고, 동작(408) 동안 복수의 스크립트 파일(116)이 분석될 수 있다. From operation 406, the method 400 proceeds to operation 408 where the server computer 102 obtains a dependency associated with the script file 116. In particular, server computer 102 analyzes each of script files 116 and determines whether the script file 116 depends on any other script file 116 or whether it depends on the other script file 116. do. In some embodiments, server computer 102 determines the dependency by receiving XML manifests, lists, or other data indicative of script file dependencies, and / or analyzing page 108. Reference to the script file 116 may also exist within the page 108 and / or within the script file 116 itself. Thus, server computer 102 may determine a dependency of one or more script files 116 through analysis of page 108 and / or script file 116. If another script file 116 is referenced by the script file 116 for which a dependency is sought, in operation 408, the script file referenced as described above in connection with the recall during the dependency determination. 116 can also be analyzed. Thus, although not shown in the figures, if necessary, for analysis and / or other purposes described herein, server computer 102 may store a copy of script file 116 and during operation 408. Multiple script files 116 may be analyzed.

동작(408)으로부터, 또는 동작(404)에서 서버 컴퓨터(102)가 스크립트 파일(116)이 이전에 방문 또는 분석된 적이 있다고 결정한 경우, 상기 방법(400)은 동작(410)으로 진행된다. 동작(410)에서, 서버 컴퓨터(102)가 또 다른 스크립트 파일(116) 또는 노드가 의존관계 구하기 동안 유지되는지 여부를 판정할 수 있다. 도 3을 참조하여 앞서 설명된 바와 같이, 서버 컴퓨터(102)가 페이지(108)에 포함된 복수의 스크립트 파일(116) 및/또는 노드를 결정하기 위해 페이지(108)를 분석하거나, 및/또는 페이지(108) 내 스크립트 파일(116) 또는 노드를 식별하고 페이지(108)에서 초기 스크립트 파일(116) 또는 노드를 계속 검색할 수 있다. 따라서, 동작(410)은 추가 스크립트 파일(116) 또는 노드를 검색하기 위해 서버 컴퓨터(102)가 페이지(108)를 분석하는 것 및/또는 페이지(108)에서 식별된 각각의 스크립트 파일(116) 또는 노드가 분석 또는 방문된 적 있는지 여부를 판정하는 것을 포함할 수 있다. 서버 컴퓨터(102)가 또 다른 스크립트 파일(116) 또는 노드가 분석될 것이라고 동작(410)에서 결정한 경우, 상기 방법(400)은 서버 컴퓨터(102)가 또 다른 스크립트 파일(116)을 선택할 수 있는 동작(402)으로 복귀할 수 있다. 서버 컴퓨터(102)가 동작(308)의 임의의 반복구간에서, 또 다른 스크립트 파일(116)이 분석되지 않을 것이라고 결정할 때까지 서버 컴퓨터(102)에 의해 동작(402-410)이 반복될 수 있다.From operation 408, or if the server computer 102 determines in step 404 that the script file 116 has previously been visited or analyzed, the method 400 proceeds to operation 410. In operation 410, the server computer 102 may determine whether another script file 116 or node is maintained during the dependency seeking. As described above with reference to FIG. 3, server computer 102 analyzes page 108 to determine a plurality of script files 116 and / or nodes included in page 108, and / or You can identify the script file 116 or node in page 108 and continue to retrieve the initial script file 116 or node in page 108. Accordingly, operation 410 may include the server computer 102 analyzing page 108 and / or each script file 116 identified on page 108 to retrieve additional script file 116 or nodes. Or determining whether the node has been analyzed or visited. If the server computer 102 determines in operation 410 that another script file 116 or node will be analyzed, the method 400 may allow the server computer 102 to select another script file 116. Return to operation 402. Operations 402-410 may be repeated by server computer 102 until server computer 102 determines that at another iteration of operation 308, another script file 116 will not be analyzed. .

동작(410)의 임의의 반복구간에서, 서버 컴퓨터(102)가 또 다른 스크립트 파일(116)이 분석되지 않을 것이라고 결정한 경우, 상기 방법(400)은 동작(412)으로 진행된다. 상기 방법(400)은 동작(412)에서 종료된다.In any iteration of operation 410, if server computer 102 determines that another script file 116 will not be analyzed, the method 400 proceeds to operation 412. The method 400 ends at operation 412.

한 가지 고려되는 실시예에 따르면, 서버 컴퓨터(102)가 컴퓨터 실행 가능 코드의 실행을 통해 방법(400)을 참조하여 앞서 기재된 기능들 중 일부 또는 전부를 제공하거나 제공하지 않는다. 컴퓨터 실행 가능 코드의 한 가지 실시예가 이하의 표 3에서 제공된다. 예시적 코드가 한 가지 고려되는 예시를 나타내는 것에 불과하기 때문에, 표 3에서 제공되는 실시예는 어떠한 식으로도 제한하려 하는 것으로 해석되어서는 안 된다. 덧붙여, 이하에서 제공되는 예시가 메소드 "Output"이 존재한다는 가정을 기초로 한다. Output 메소드는 로드 레벨에 따라 다양한 액션을 취하도록 맞춤 구성될 수 있다. 따라서 제공된 Output 메소드는 이러한 메소드의 존재를 나타내기 위한 예시에 불과하며 어떠한 식으로도 제한하려는 것으로 해석되어서는 안 된다. According to one contemplated embodiment, server computer 102 provides or does not provide some or all of the functions described above with reference to method 400 through execution of computer executable code. One embodiment of computer executable code is provided in Table 3 below. Because the example code merely illustrates one contemplated example, the embodiments provided in Table 3 should not be construed as limiting in any way. In addition, the example provided below is based on the assumption that the method "Output" exists. Output methods can be customized to take different actions depending on the load level. Therefore, the provided Output methods are merely illustrative of the existence of such methods and should not be construed as limiting in any way.

Figure 112014067248860-pct00003
Figure 112014067248860-pct00003

도 5를 다시 참조하면, 스크립트 파일 의존관계 및/또는 로드 시점을 관리하기 위한 본 명세서에 개시된 개념 및 기법의 추가 양태가 상세히 기재될 것이다. 특히, 도 5는 도시된 실시예에 따라, 스크립트 파일 방향성 그래프(500)를 개략적으로 보여주는 블록 다이어그램이다. 스크립트 파일 방향성 그래프(500)는 스크립트 파일 방향성 그래프(500) 내에서 표현되는 스크립트 파일(116)들 간 의존관계를 나타내는 데이터 구조에 대응할 수 있다. 도 5에 도시된 스크립트 파일 방향성 그래프(500)는 상기에서 상세하게 기재된 그래프(120)의 하나의 예시임을 알아야 한다. 따라서 도시된 실시예는 예시로서 이해되어야 하며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. Referring again to FIG. 5, additional aspects of the concepts and techniques disclosed herein for managing script file dependencies and / or load points will be described in detail. In particular, FIG. 5 is a block diagram schematically illustrating a script file directional graph 500, in accordance with the illustrated embodiment. The script file directional graph 500 may correspond to a data structure indicating a dependency between the script files 116 represented in the script file directional graph 500. It should be noted that the script file directional graph 500 shown in FIG. 5 is one example of the graph 120 described in detail above. The illustrated embodiments are therefore to be understood as illustrative and should not be construed as limiting in any way.

도 5에 도시된 바와 같이, 스크립트 파일 방향성 그래프(500)는 복수의 노드(502A-502F)(본 명세서에서 총체적으로 및/또는 일반적으로 "노드(502)"라고 지칭됨)를 포함한다. 앞서 설명된 바와 같이, 도 5에 도시된 상기 노드(502)는 특정 페이지(108)와 연관되는 스크립트 파일(116)에 대응할 수 있다. 도 5의 예시적 스크립트 파일 방향성 그래프(500)는 6개의 스크립트 파일(116)을 참조하는 하나의 페이지(108)에 대한 그래프(120)에 대응한다. 앞서 설명한 바와 같이, 이 실시예는 예시이며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. As shown in FIG. 5, script file directional graph 500 includes a plurality of nodes 502A-502F (collectively and / or generally referred to herein as “node 502”). As described above, the node 502 shown in FIG. 5 may correspond to a script file 116 associated with a particular page 108. The example script file directional graph 500 of FIG. 5 corresponds to the graph 120 for one page 108 that references six script files 116. As described above, this embodiment is illustrative and should not be construed as limiting in any way.

본 명세서에서 개시되는 개념 및 기술을 기재하기 위한 목적으로, 도 5에 도시되는 스크립트 파일 방향성 그래프(500)가 스크립트 파일(116)로의 적어도 6개의 참조를 포함하는 하나의 예시적 페이지(108)에 대응하는 것으로 기재될 것이다. 본 명세서의 기재로부터 노드는 노드(502)로의 참조를 포함하는 페이지에 추가로, 또는 상기 페이지를 대신하여 그 밖의 다른 노드로의 참조를 포함할 수 있음을 이해해야 한다. 예를 들어, 상기 노드(502D)가 노드(502C)에 의존하고 따라서 노드(502D)는 노드(502C)로의 참조를 포함할 수 있는 것으로 도시되어 있다. 일부 실시예에서, 서버 컴퓨터(102)는 도 2-4에서 도시된 방법(200, 300, 400)의 실행을 통한 스크립트 파일 방향성 그래프(500)를 생성한다. 특히, 서버 컴퓨터(102)는 노드(502)를 도 3을 참조하여 앞서 기재된 방법(300)의 실행을 통해 스크립트 파일 방향성 그래프(500)에 추가할 수 있다. 덧붙여, 스크립트 파일 방향성 그래프(500)는 노드 에지(504A-F)(본 명세서에서 총체적으로 및/또는 일반적으로 "에지(504)"라고 지칭됨)의 디스플레이를 통해 노드(502)들 간 의존관계를 나타낸다. 상기 에지(504)는 스크립트 파일(116)들 간 의존관계에 대응할 수 있고, 여기서 의존관계는 2개의 노드(502) 간 에지(504)에 의해 나타내어진다. For purposes of describing the concepts and techniques disclosed herein, the script file directional graph 500 shown in FIG. 5 is on one example page 108 including at least six references to the script file 116. It will be described as corresponding. It should be understood from the description herein that a node may include a reference to another node in addition to, or on behalf of, the page that includes a reference to node 502. For example, it is shown that node 502D depends on node 502C and thus node 502D may include a reference to node 502C. In some embodiments, server computer 102 generates script file directional graph 500 through the execution of methods 200, 300, 400 shown in FIGS. 2-4. In particular, server computer 102 may add node 502 to script file directional graph 500 through execution of method 300 described above with reference to FIG. 3. In addition, the script file directional graph 500 may depend upon the nodes 502 through the display of node edges 504A-F (collectively and / or generally referred to herein as "edge 504"). Indicates. The edge 504 may correspond to a dependency between script files 116, where the dependency is represented by an edge 504 between two nodes 502.

일부 실시예에서, 에지(504)의 화살표가 의존 노드(dependent node)(502)를 향해 가리킨다. 구체적으로 에지(504)의 화살표는 피-의존 노드(depended upon node)(502) 또는 스크립트 파일(116)의 반대 방향을 향해 및/또는 또 다른 노드(502)에 의존하는 노드(502) 또는 스크립트 파일(116)을 향해 가리킬 수 있다. 예를 들어, "d.js"라는 명칭의 스크립트 파일(116)에 대응하는 노드(502D)가 "c.js"라는 명칭의 스크립트 파일(116)에 대응하는 노드(502C) 및 "e.js"라는 명칭의 스크립트 파일(116)에 대응하는 노드(502E)에 의존하는 것으로 도 5에 도시되어 있다. 이 실시예는 예시이며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 됨을 이해해야 한다. In some embodiments, an arrow at edge 504 points toward dependent node 502. Specifically, the arrow at edge 504 is directed toward the opposite direction of the depended upon node 502 or script file 116 and / or node 502 or script depending on another node 502. Can point to file 116. For example, the node 502D corresponding to the script file 116 named "d.js" is the node 502C corresponding to the script file 116 named "c.js" and "e.js." It is shown in FIG. 5 as depending on node 502E corresponding to script file 116 named ". It is to be understood that this example is exemplary and should not be construed as limiting in any way.

앞서 설명된 바와 같이, 서버 컴퓨터(102)가 스크립트 파일 방향성 그래프(500) 및/또는 그 밖의 다른 그래프(120)뿐 아니라 테이블, 리스트, 매니페스트, 및/또는 그 밖의 다른 데이터 구조, 가령, 테이블(122)을 생성할 수 있다. 상기 테이블(122)은 페이지(108)와 연관된 스크립트 파일(116) 및/또는 노드(502) 각각에 대한 로드 레벨을 특정할 수 있다. 로드 레벨을 나타내기 위한 테이블(122)의 예시가 도 6을 참조하여 이하에서 설명 및 기재된다. As described above, the server computer 102 may use tables, lists, manifests, and / or other data structures, such as tables, as well as script file directional graphs 500 and / or other graphs 120. 122). The table 122 may specify a load level for each of the script file 116 and / or node 502 associated with the page 108. An example of a table 122 for indicating load levels is described and described below with reference to FIG. 6.

하나의 고려되는 실시예에 따르면, 서버 컴퓨터(102)가 이하에서 표 4에 나타난 동작의 실행을 통해 스크립트 파일 방향성 그래프(500)를 생성한다. 표 4에 나타난 예시적 코드 및 도 5에 도시된 스크립트 파일 방향성 그래프(500)는 한 가지 고려되는 예시에 불과하기 때문에, 표 4에 제공되는 실시예는 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. According to one contemplated embodiment, server computer 102 generates script file directionality graph 500 through execution of the operations shown in Table 4 below. Since the example code shown in Table 4 and the script file directional graph 500 shown in FIG. 5 are just one example considered, the embodiment provided in Table 4 should not be construed as limiting in any way. do.

Figure 112014067248860-pct00004
Figure 112014067248860-pct00004

도 6을 참조하여, 하나의 예시적 실시예에 따라, 스크립트 파일 로드 레벨 테이블(600)을 나타내는 선 그리기가 도시된다. 다양한 실시예에 따르면, 서버 컴퓨터(102)가 도 204를 참조하여 앞서 기재된 방법(200, 300, 400) 및/또는 그 밖의 다른 프로세스의 실행을 통해 스크립트 파일 로드 레벨 테이블(600)을 생성할 수 있다. 예시적 실시예에서, 스크립트 파일(116) 및/또는 스크립트 파일(116)에 대응하는 노드를, 페이지(108)의 분석을 기초로 및/또는 서버 컴퓨터(102)로 제공되는 리스트 또는 매니페스트를 통해 결정될 수 있는 특정된 로드 레벨과 함께 등록한 후 스크립트 파일 로드 레벨 테이블(600)이 생성된다. Referring to FIG. 6, a line drawing representing a script file load level table 600 is shown, according to one exemplary embodiment. According to various embodiments, server computer 102 may generate script file load level table 600 through execution of methods 200, 300, 400 and / or other processes described above with reference to FIG. 204. have. In an example embodiment, the script file 116 and / or nodes corresponding to the script file 116 are based on the analysis of the page 108 and / or via a list or manifest provided to the server computer 102. After registering with a specified load level that can be determined, a script file load level table 600 is created.

도 6에 도시된 바와 같이, 스크립트 파일 로드 레벨 테이블(600)이 로드 레벨을 가리키기 위한 열(column)(602)과 스크립트 파일(116)을 가리키기 위한 열(604)을 포함한다. 따라서 스크립트 파일 로드 레벨 테이블(600)은 복수의 행(606A-H)을 포함할 수 있다(이하에서 총체적으로 및/또는 일반적으로 "행(606)"이라고 지칭됨). 한 행(606)은 한 로드 레벨에 대응할 수 있고, 상기 행(606)에 대응하는 로드 레벨로 로딩될 스크립트 파일을 가리킬 수 있다. 따라서, 예를 들어, 행(606C)이 제 3 로드 레벨에 대응할 수 있고 "e.js"라는 명칭의 스크립트 파일(116)이 상기 제 3 로드 레벨로 로딩될 것임을 가리킬 수 있다. 스크립트 파일 로드 레벨 테이블(600)이 8개보다 적거나 많은 로드 레벨을 포함하거나, 및/또는 6개보다 적거나 많은 스크립트 파일(116)을 포함할 수 있기 때문에, 도시된 실시예는 예시에 불과하며, 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. As shown in FIG. 6, the script file load level table 600 includes a column 602 to indicate the load level and a column 604 to point to the script file 116. Thus, the script file load level table 600 may include a plurality of rows 606A-H (collectively and / or generally referred to as “rows 606” below). One line 606 may correspond to one load level and may point to a script file to be loaded at the load level corresponding to line 606. Thus, for example, line 606C may correspond to a third load level and may indicate that a script file 116 named "e.js" will be loaded at that third load level. Since the script file load level table 600 may include fewer or more than eight load levels, and / or may include fewer or more than six script files 116, the illustrated embodiment is illustrative only. It should not be construed as limiting in any way.

임의의 개수의 로드 레벨이 포함될 수 있고, 로드 레벨의 개수 및/또는 로드 레벨의 지정(designation)은 구현에 따라 달라질 수 있음을 이해해야 한다. 하나의 고려되는 예시에서, 로드 레벨의 4개의 일반적인 카테고리는 특정 기능이 액세스 또는 요청될 때 실행되는 스크립트 파일(116)에 대응하는 온-디맨드 로드 레벨(on-demand load level), 사용자 인터페이스가 렌더링된 후 로딩 또는 실행되는 스크립트 파일(116)에 대응하는 UI-후 로드 레벨(after-UI load level), 디퍼 속성(defer attribute)을 갖는 스크립트 태그에서 참조되는 스크립트 파일(116)에 대응하는 디퍼 로드 레벨(defer load level), 및/또는 로드 인라인 로드 레벨(load inline load level), 가령, 페이지(108) 코드의 바디(body) 내에서 참조되는 스크립트 파일(116)을 포함한다. It should be understood that any number of load levels may be included and that the number of load levels and / or designation of load levels may vary from implementation to implementation. In one contemplated example, four general categories of load levels are rendered on-demand load level corresponding to script file 116 that is executed when a particular function is accessed or requested, the user interface being rendered. Load corresponding to the script file 116 referenced in the script tag having an after-UI load level and a defer attribute corresponding to the script file 116 that is loaded or executed after being loaded. Level load, and / or load inline load level, such as script file 116 referenced within the body of page 108 code.

또 다른 고려되는 실시예에서, 8개의 로드 레벨이 하나의 특정 페이지(108)와 연관된다. 상기 레벨들은, 비-제한적 예를 들면, 페이지 헤더에서 소스("src") 속성을 갖는 스크립트 태그로서 참조되는 스크립트 파일(116)에 대응하는 제 1 레벨과, 상기 제 1 레벨 스크립트 후에 페이지에서 참조되는 스크립트 파일(116)에 대응하는 제 2 레벨과, 레벨 2 스크립트 후에 페이지 헤더에서 src 속성 및 디퍼 속성을 갖는 스크립트 태그로서 위치하는 스크립트 파일(116)에 대응하는 제 3 레벨과, 레벨 3 스크립트 후에, src 속성 및 디퍼 속성을 갖는 페이지 헤드에 스크립트 태그로서 포함되는 스크립트 파일(116)에 대응하는 제 4 레벨을 포함할 수 있다. 또한 로드 레벨은 페이지(108)의 바디의 끝 부분의 가까이에서 src 속성을 갖는 스크립트 태그로서 스크립트 파일(116)에 대응하는 제 5 로드 레벨, 레벨 5 스크립트 후에 페이지(108)의 바디의 끝 부분의 가까이에서 스크립트 태그로서 포함되는 스크립트 파일(116) 참조에 대응하는 제 6 레벨, 온-디맨드 등록을 통해 등록되고 필요할 때 로딩되는 스크립트 파일(116)에 대응하는 제 7 레벨, 및/또는 레벨 7 스크립트 파일 참조 후에 온-디맨드 등록 시스템을 통해 등록되고 필요할 때 로딩되는 스크립트 파일(116)에 대응하는 제 8 레벨을 포함할 수 있다. 다시 말하면, 앞서 기재된 로드 레벨의 실시예는 예시에 불과하고 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. In another contemplated embodiment, eight load levels are associated with one particular page 108. The levels refer to a first level corresponding to a script file 116, which is referred to as a script tag having a source ("src") attribute in a non-limiting example, a page header, and a page after the first level script The second level corresponding to the script file 116 being replaced, the third level corresponding to the script file 116 located as a script tag having the src attribute and the dipper attribute in the page header after the level 2 script, and the level 3 script and a fourth level corresponding to the script file 116 included as a script tag in the page head having the src attribute and the dipper attribute. The load level is also a script tag with an src attribute near the end of the body of page 108, and is the fifth end of the body of page 108 after the fifth load level, level 5 script corresponding to script file 116. A sixth level corresponding to a script file 116 reference included nearby as a script tag, a seventh level corresponding to a script file 116 registered via on-demand registration and loaded when needed, and / or a level 7 script It may include an eighth level corresponding to script file 116 that is registered through the on-demand registration system and loaded as needed after file reference. In other words, the embodiment of the load level described above is merely illustrative and should not be construed as limiting in any way.

스크립트 파일 로드 레벨 테이블(600)이 특정 페이지(108)와 연관된 로드 레벨 및 어느 스크립트 파일(116)이 각각의 식별된 로드 레벨로 로딩될 것인지와 관련된 표시를 가리킬 수 있다. 따라서 스크립트 파일 로드 레벨 테이블(600)이 페이지(108)를 렌더링할 때 사용되기 위한 다른 개체, 가령, 클라이언트 장치(110)에게 제공될 수 있다. 따라서 페이지(108)에 의해 참조되는 스크립트 파일(116)이 서버 컴퓨터(102)에 의해 상기 스크립트 파일 로드 레벨 테이블(600)에 의해 식별된 순서로 액세스, 로딩, 및/또는 실행될 수 있다. 이 실시예는 예시에 불과하며 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. The script file load level table 600 may point to an indication relating to the load level associated with a particular page 108 and which script file 116 will be loaded at each identified load level. Thus, the script file load level table 600 can be provided to other objects, such as client device 110, for use in rendering page 108. Thus, the script file 116 referenced by the page 108 may be accessed, loaded, and / or executed by the server computer 102 in the order identified by the script file load level table 600. This embodiment is illustrative only and should not be construed as limiting in any way.

하나의 고려되는 실시예에 따르면, 서버 컴퓨터(102)는 이하의 표 5에서 나타나는 동작의 실행을 통해 스크립트 파일 로드 레벨 테이블(600)을 생성한다. 표 5에서 나타난 예시적 코드 및 도 6에서 도시된 스크립트 파일 로드 레벨 테이블(600)은 한 가지 고려되는 예시에 불과하기 때문에, 표 5에 제공되는 실시예는 어떠한 식으로도 제한하는 것으로 해석되어서는 안 된다. According to one contemplated embodiment, server computer 102 generates script file load level table 600 through execution of the operations shown in Table 5 below. Since the example code shown in Table 5 and the script file load level table 600 shown in FIG. 6 are just one example considered, the embodiment provided in Table 5 should not be construed as limiting in any way. Can not be done.

Figure 112014067248860-pct00005
Figure 112014067248860-pct00005

도 7은 스크립트 파일 의존관계 및 로드 시점을 관리하기 위해 본 명세서에 기재된 소프트웨어 구성요소를 실행할 수 있는 장치를 위한 예시적 컴퓨터 아키텍처(700)를 도시한다. 따라서 도 7에 도시된 컴퓨터 아키텍처(700)는 서버 컴퓨터, 모바일 전화기, PDA, 스마트 폰, 데스크톱 컴퓨터, 넷북 컴퓨터, 태블릿 컴퓨터, 및/또는 랩톱 컴퓨터를 위한 아키텍처를 도시한다. 컴퓨터 아키텍처(700)는 본 명세서에 제공된 소프트웨어 구성요소의 임의의 양태를 실행하도록 사용될 수 있다.7 illustrates an example computer architecture 700 for an apparatus capable of executing the software components described herein to manage script file dependencies and load points. Thus, the computer architecture 700 shown in FIG. 7 illustrates an architecture for a server computer, mobile phone, PDA, smart phone, desktop computer, netbook computer, tablet computer, and / or laptop computer. Computer architecture 700 may be used to execute any aspect of the software components provided herein.

도 7에 도시된 상기 컴퓨터 아키텍처(700)는 중앙 프로세싱 유닛(702)("CPU"), 시스템 메모리(704), 가령, 랜덤 액세스 메모리(706)("RAM") 및 리드-온리 메모리("ROM")(708), 및 상기 메모리(704)를 CPU(702)로 연결하는 시스템 버스(710)를 포함한다. 가령, 시동 동안, 컴퓨터 아키텍처(700) 내 요소들 사이에 정보를 전송하는 데 도움이 되는 기본 루틴을 포함하는 기본 입/출력 시스템이 상기 ROM(708)에 저장된다. 상기 컴퓨터 아키텍처(700)는 운영 체제(714), 서버 애플리케이션(106), 및/또는 그 밖의 다른 애플리케이션 프로그램을 저장하기 위한 대용량 저장 장치(712)를 더 포함한다. 상기 대용량 저장 장치(712)는 페이지(108), 데이터(118), 및/또는 그 밖의 다른 데이터(도 7에 도시되지 않음)를 저장하도록 구성될 수 있다. The computer architecture 700 shown in FIG. 7 includes a central processing unit 702 (“CPU”), system memory 704, such as random access memory 706 (“RAM”), and read-only memory (“ ROM ") 708, and a system bus 710 that connects the memory 704 to the CPU 702. For example, during startup, a basic input / output system is stored in the ROM 708 that includes basic routines that help transfer information between elements in the computer architecture 700. The computer architecture 700 further includes a mass storage device 712 for storing an operating system 714, server applications 106, and / or other application programs. The mass storage device 712 can be configured to store the page 108, the data 118, and / or other data (not shown in FIG. 7).

대용량 저장 장치(712)는 버스(710)로 연결된 대용량 저장 제어기(도시되지 않음)를 통해 CPU(702)로 연결된다. 상기 대용량 저장 장치(712) 및 이의 연관된 컴퓨터 판독형 매체는 컴퓨터 아키텍처(700)의 비휘발성 저장소를 제공한다. 본 명세서에 포함된 컴퓨터 판독형 매체의 기재가 대용량 저장 장치, 가령, 하드 디스크 또는 CD-ROM 드라이브를 지칭하더라도, 해당 분야의 통상의 기술자라면 컴퓨터 판독형 매체는 컴퓨터 아키텍처(700)에 의해 액세스될 수 있는 임의의 이용 가능한 컴퓨터 저장 매체 또는 통신 매체일 수 있음을 알 것이다. Mass storage device 712 is coupled to CPU 702 via a mass storage controller (not shown) connected by bus 710. The mass storage device 712 and its associated computer readable medium provide nonvolatile storage of the computer architecture 700. Although the description of computer readable media included herein refers to mass storage devices, such as hard disks or CD-ROM drives, those skilled in the art will appreciate that computer readable media may be accessed by computer architecture 700. It will be appreciated that any available computer storage media or communication media may be available.

통신 매체는 변조된 데이터 신호, 가령, 반송파 또는 그 밖의 다른 전송 메커니즘으로 된 컴퓨터 판독형 명령어, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터를 포함하고, 임의의 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호의 정보를 인코딩하기 위한 방식으로 변경 또는 설정된 하나 이상의 특성을 갖는 신호를 의미한다. 비-제한적 예를 들면, 통신 매체는 유선 매체, 가령, 유선 네트워크 또는 직접 배선된 연결을 포함하고 무선 매체, 가령 음향, RF, 적외선 및 그 밖의 다른 무선 매체를 포함한다. 상기의 예시들 중 임의의 조합이 또한 컴퓨터 판독형 매체의 범위 내에 포함될 것이다. Communication media includes computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier or other transmission mechanism, and includes any transmission media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of non-limiting example, communication media includes wired media, such as wired networks or direct wired connections, and includes wireless media, such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.

비-제한적 예를 들면, 컴퓨터 저장 매체는 정보, 가령, 컴퓨터 판독형 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 이동식 및 비이동식 매체를 포함할 수 있다. 컴퓨터 매체의 비-제한적 예를 들면, RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 솔리드 스테이트 메모리 기법, CD-ROM, 디지털 다목적 디스크("DVD"), HD-DVD, BLU-RAY, 또는 그 밖의 다른 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 그 밖의 다른 자기 저장 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터 아키텍처(700)에 의해 액세스될 수 있는 그 밖의 다른 임의의 매체를 포함한다. 청구 목적으로, "컴퓨터 저장 매체" 및 이의 변형 구문들은, 파(wave), 신호, 및/또는 그 밖의 다른 일시적(transitory) 및/또는 비유형적(intangible) 통신 매체 자체를 포함하지 않는다.By way of non-limiting example, computer storage media may be volatile and nonvolatile removable and non-removable implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules or other data. Media may be included. Non-limiting examples of computer media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory techniques, CD-ROMs, digital general purpose disks ("DVDs"), HD-DVDs, BLU-RAYs, Or any other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or any other that can be used to store desired information and can be accessed by computer architecture 700. Any media. For the purposes of the claims, "computer storage media" and variations thereof do not include wave, signal, and / or other transitory and / or intangible communication media itself.

다양한 실시예에 따르면, 컴퓨터 아키텍처(700)는 네트워크, 가령, 네트워크(104)를 통한 원격 컴퓨터로의 논리적 연결을 이용해 네트워크 연결된 환경에서 동작할 수 있다. 상기 컴퓨터 아키텍처(700)는 버스(710)로 연결된 네트워크 인터페이스 유닛(716)을 통해 네트워크(104)로 연결될 수 있다. 또한 네트워크 인터페이스 유닛(716)은 그 밖의 다른 유형의 네트워크 및 원격 컴퓨터 시스템, 가령, 클라이언트 장치(110)로 연결되도록 사용될 수 있다. 또한 상기 컴퓨터 아키텍처(700)는 복수의 타 장치, 가령, 키보드, 마우스, 또는 전자 스타일러스(도 7에 도시되지 않음)로부터의 입력을 수신 및 처리하기 위한 입/출력 제어기(718)를 포함할 수 있다. 마찬가지로, 상기 입/출력 제어기(718)는 디스플레이 스크린, 프린터, 또는 그 밖의 다른 유형의 출력 장치(도 7에 도시되지 않음)로 출력을 제공할 수 있다. According to various embodiments, computer architecture 700 may operate in a networked environment using a logical connection to a remote computer via a network, such as network 104. The computer architecture 700 may be connected to the network 104 via a network interface unit 716 connected by a bus 710. Network interface unit 716 may also be used to connect to other types of network and remote computer systems, such as client device 110. The computer architecture 700 may also include an input / output controller 718 for receiving and processing input from a plurality of other devices, such as a keyboard, mouse, or electronic stylus (not shown in FIG. 7). have. Similarly, the input / output controller 718 can provide output to a display screen, printer, or other type of output device (not shown in FIG. 7).

본 명세서에 기재된 소프트웨어 구성요소는 CPU(702)로 로딩되고 실행될 때, CPU(702) 및 전체 컴퓨터 아키텍처(700)를 범용 컴퓨팅 시스템에서 본 명세서에서 제공되는 기능을 용이하게 하도록 커스텀화된 특수 목적 컴퓨팅 시스템으로 변환시킬 수 있다. 상기 CPU(702)는 개별적으로 또는 집합적으로 임의의 개수의 상태를 가정할 수 있는 임의의 개수의 트랜지스터 또는 그 밖의 다른 이산 회로 요소로부터 구성될 수 있다. 더 구체적으로, CPU(702)는 본 명세서에 개시되는 소프트웨어 모듈 내에 포함되는 실행 가능 명령에 응답하여 유한 상태 머신으로서 동작할 수 있다. 이들 컴퓨터 실행 가능 명령은 CPU(702)가 상태들 간에 변환되는 방식을 특정하고 트랜지스터 또는 CPU(702)를 구성하는 그 밖의 다른 이산 하드웨어 요소를 변환함으로써 CPU(702)를 변환시킬 수 있다. The software components described herein, when loaded and executed into the CPU 702, are special purpose computing that has been customized to facilitate the functionality provided herein in the general purpose computing system of the CPU 702 and the entire computer architecture 700. Can be converted to a system. The CPU 702 may be constructed from any number of transistors or other discrete circuit elements that can assume any number of states individually or collectively. More specifically, the CPU 702 may operate as a finite state machine in response to executable instructions contained within a software module disclosed herein. These computer executable instructions may specify the manner in which the CPU 702 is translated between states and may transform the CPU 702 by converting transistors or other discrete hardware elements that make up the CPU 702.

본 명세서에 제공되는 소프트웨어 모듈을 인코딩함으로써 또한 본 명세서에 제공된 컴퓨터 판독형 매체의 물리적 구조를 변환할 수 있다. 물리적 구조의 특정 변환은 본 명세서의 여러 다른 구현에서 다양한 요인들에 따라 달라질 수 있다. 이러한 요인들의 비-제한적 예시로는, 컴퓨터 판독형 매체를 구현하기 위해 사용되는 기술, 컴퓨터 판독형 매체가 주 저장장치인지 또는 보조 저장장치인지 여부 등이 있을 수 있다. 예를 들어, 컴퓨터 판독형 매체가 반도체 기반 메모리로서 구현되는 경우, 본 명세서에 개시된 소프트웨어는 반도체 메모리의 물리적 상태를 변환함으로써 컴퓨터 판독형 매체 상에 인코딩될 수 있다. 예를 들어, 소프트웨어는 트랜지스터의 상태, 커패시터, 또는 반도체 메모리를 구성하는 그 밖의 다른 이산 회로 요소를 변환시킬 수 있다. 또한 상기 소프트웨어는 이러한 구성요소의 물리적 상태를 변환시켜 여기에 데이터를 저장하도록 할 수 있다. By encoding the software modules provided herein, it is also possible to transform the physical structure of the computer readable media provided herein. The specific transformation of the physical structure may depend on various factors in the different implementations of this specification. Non-limiting examples of such factors may be the technology used to implement the computer readable medium, whether the computer readable medium is primary storage or secondary storage, and the like. For example, where a computer readable medium is implemented as a semiconductor based memory, the software disclosed herein may be encoded on the computer readable medium by converting the physical state of the semiconductor memory. For example, software can convert the state of a transistor, a capacitor, or other discrete circuit elements that make up a semiconductor memory. The software can also transform the physical state of these components to store data therein.

또 다른 예시로서, 본 명세서에 개시된 컴퓨터 판독형 매체는 자기 또는 광학 기술을 이용해 구현될 수 있다. 이러한 구현에서, 본 명세서에 제공된 소프트웨어는 소프트웨어가 인코딩될 때 자기 또는 광학 매체의 물리적 상태를 변환시킬 수 있다. 이들 변환은 주어진 자기 매체 내 특정 위치의 자기 특성을 변경하는 것을 포함할 수 있다. 또한 이들 변환은 이들 위치의 광학 특성을 변경하기 위해 주어진 광학 매체 내 물리적 특징 또는 특정 위치의 특성을 변경하는 것을 포함할 수 있다. 물리적 매체의 그 밖의 다른 변환이 본 명세서의 사상 및 범위 내에서 가능하며, 지금까지의 예시는 본 발명의 설명을 촉진시키기 위해서 제공된 것에 불과하다. As another example, the computer readable media disclosed herein may be implemented using magnetic or optical techniques. In such implementations, the software provided herein may transform the physical state of magnetic or optical media when the software is encoded. These transformations can include changing the magnetic properties of a particular location within a given magnetic medium. These transformations may also include altering the physical characteristics or properties of a particular location within a given optical medium to alter the optical properties of these locations. Other transformations of the physical medium are possible within the spirit and scope of this specification, and the examples so far are merely provided to facilitate the description of the invention.

상기의 내용과 관련하여, 많은 유형의 물리적 변환이 컴퓨터 아키텍처(700)에서 이뤄져서, 여기에 제공된 소프트웨어 구성요소를 저장 및 실행할 수 있음이 자명할 것이다. 컴퓨터 아키텍처(700)가 그 밖의 다른 유형의 컴퓨팅 장치, 가령, 핸드-헬드 컴퓨터, 임베디드 컴퓨터 시스템, 개인 디지털 보조기(PDA), 및 해당 분야에 알려진 그 밖의 다른 유형의 컴퓨팅 장치를 포함할 수 있음이 자명할 것이다. 또한 컴퓨터 아키텍처(700)가 도 7에 도시된 구성요소 모두를 포함하지 않거나, 도 7에 명시적으로 나타나지 않는 그 밖의 다른 구성요소를 포함하거나, 도 7에 나타난 것과 완전히 상이한 아키텍처를 사용할 수 있음이 역시 고려된다. In view of the above, it will be apparent that many types of physical transformations may be made in the computer architecture 700 to store and execute the software components provided herein. Computer architecture 700 may include other types of computing devices, such as hand-held computers, embedded computer systems, personal digital assistants (PDAs), and other types of computing devices known in the art. Will be self explanatory. It is also possible that the computer architecture 700 may include all of the components shown in FIG. 7, include other components not explicitly shown in FIG. 7, or use a completely different architecture than that shown in FIG. 7. Also considered.

상기의 내용을 기초로 하여, 스크립트 파일 의존관계 및 로드 시점을 관리하기 위한 기술이 본 명세서에 개시되었음을 알 것이다. 본 명세서에 제공되는 발명이 컴퓨터 구조 특징, 방법적 및 변환적 동작, 특정 컴퓨팅 기계류, 및 컴퓨터 판독형 매체에 특정된 언어로 기재되었지만, 이하의 특허청구범위에서 정의된 발명이 본 명세서에 기재된 특정 특징부, 동작, 또는 매체에 반든시 한정되는 것은 아니다. 오히려, 특정 특징부, 동작 및 매체는 특허청구범위를 구현하는 예시적 형태로서 개시된다. Based on the above, it will be appreciated that a technique for managing script file dependencies and load points is disclosed herein. Although the invention provided herein has been described in language specific to computer structural features, methodological and transformative operations, certain computing machinery, and computer readable media, the invention defined in the following claims is described herein. It is not necessarily limited to features, operations, or media. Rather, the specific features, acts, and media are disclosed as example forms of implementing the claims.

앞서 기재된 사항은 단지 예시에 불과하며 제한하는 것으로 해석되어서는 안 된다. 도시 및 기재된 예시적 실시예 및 적용을 따르지 않고, 이하의 특허청구범위에서 제공되는 본 발명의 진정한 사상 및 범위 내에서, 본 명세서에 기재된 사항의 다양한 수정 및 변경이 이뤄질 수 있다.The foregoing is merely illustrative and should not be construed as limiting. Various modifications and variations of the subject matter described herein may be made without departing from the illustrated and described exemplary embodiments and applications, and without departing from the true spirit and scope of the invention as provided in the following claims.

Claims (20)

스크립트 파일 의존관계(script file dependency)를 나타내는 데이터를 출력하기 위해 컴퓨터로 구현되는 방법으로서,
컴퓨터에서, 클라이언트측 스크립트 파일로의 참조를 포함하는 자원과 연관된 실행 가능 코드를 수신하는 단계와,
상기 컴퓨터에서, 상기 참조와 연관된 상기 클라이언트측 스크립트 파일을 등록하는 단계와,
상기 컴퓨터에서, 상기 클라이언트측 스크립트 파일과 연관된 스크립트 파일 의존관계를 구하는 단계와,
상기 컴퓨터에서, 상기 참조와 연관된 상기 클라이언트측 스크립트 파일에 대한 상기 구해진 스크립트 파일 의존관계를 나타내는 데이터를 출력하는 단계
를 포함하되,
상기 클라이언트측 스크립트 파일과 연관된 상기 스크립트 파일 의존관계를 구하는 단계는,
분석할 상기 클라이언트측 스크립트 파일을 선택하는 단계와,
상기 클라이언트측 스크립트 파일이 이전에 분석된 적이 없음을 판정하는 단계와,
상기 클라이언트측 스크립트 파일이 이전에 분석된 적이 없다는 판정에 응답하여, 상기 클라이언트측 스크립트 파일을 방문되는 것으로 마킹하는 단계
를 포함하고,
상기 데이터는 상기 클라이언트측 스크립트 파일로의 상기 참조 및 상기 클라이언트측 스크립트 파일이 상기 컴퓨터와 통신하는 클라이언트 장치에서 상기 자원의 렌더링 동안 로딩될 로드 레벨(load level)을 포함하는 데이터 구조를 포함하는
방법.
A computer-implemented method for outputting data indicative of script file dependencies,
Receiving, at the computer, executable code associated with the resource comprising a reference to a client-side script file,
Registering, at the computer, the client-side script file associated with the reference;
At the computer, obtaining a script file dependency associated with the client-side script file;
Outputting, at the computer, data indicative of the obtained script file dependency on the client-side script file associated with the reference.
Including,
Obtaining the script file dependency associated with the client side script file includes:
Selecting the client-side script file for analysis;
Determining that the client-side script file has not been previously analyzed;
In response to determining that the client-side script file has not been previously analyzed, marking the client-side script file as being visited.
Including,
The data includes a data structure including the reference to the client-side script file and a load level at which the client-side script file will be loaded during rendering of the resource at a client device in communication with the computer.
Way.
제1항에 있어서,
상기 데이터는,
상기 클라이언트측 스크립트 파일에 대응하는 제 1 노드,
상기 클라이언트측 스크립트 파일이 의존하는 제 2 클라이언트측 스크립트 파일에 대응하는 제 2 노드, 및
상기 클라이언트측 스크립트 파일과 상기 제 2 클라이언트측 스크립트 파일 간의 에지(edge) - 상기 에지는 상기 클라이언트측 스크립트 파일과 상기 제 2 클라이언트측 스크립트 파일 간의 스크립트 파일 의존관계를 나타냄 -
를 포함하는 데이터 구조를 더 포함하는
방법.
The method of claim 1,
The data is,
A first node corresponding to the client-side script file,
A second node corresponding to a second client-side script file upon which the client-side script file depends;
An edge between the client-side script file and the second client-side script file, the edge indicating a script file dependency between the client-side script file and the second client-side script file.
Further comprising a data structure comprising a
Way.
제1항에 있어서,
상기 실행 가능 코드 및 상기 데이터를 상기 클라이언트 장치로 제공하는 단계 - 상기 클라이언트 장치는 상기 클라이언트측 스크립트 파일을 저장함 - 를 더 포함하는
방법.
The method of claim 1,
Providing the executable code and the data to the client device, the client device storing the client-side script file.
Way.
제1항에 있어서,
상기 클라이언트측 스크립트 파일과 연관된 상기 스크립트 파일 의존관계를 구하는 단계는, 상기 클라이언트측 스크립트 파일에 의존하는 추가 클라이언트측 스크립트 파일을 식별하는 단계를 더 포함하는
방법.
The method of claim 1,
Obtaining the script file dependency associated with the client side script file further includes identifying additional client side script files that depend on the client side script file.
Way.
제1항에 있어서,
상기 클라이언트측 스크립트 파일을 등록하는 단계는,
데이터 구조를 생성하는 단계와,
상기 데이터 구조에 상기 클라이언트측 스크립트 파일에 대응하는 노드를 추가하는 단계
를 포함하는
방법.
The method of claim 1,
Registering the client-side script file,
Creating a data structure,
Adding a node corresponding to the client-side script file to the data structure
Containing
Way.
제1항에 있어서,
상기 클라이언트측 스크립트 파일을 등록하는 단계는,
로드 레벨 테이블을 생성하는 단계와,
상기 로드 레벨 테이블로의 참조를 추가하는 단계
를 포함하되,
상기 로드 레벨 테이블로의 참조는 상기 클라이언트측 스크립트 파일로의 참조 및 상기 클라이언트측 스크립트 파일과 연관된 로드 레벨의 표시를 포함하는
방법.
The method of claim 1,
Registering the client-side script file,
Creating a load level table,
Adding a reference to the load level table
Including,
The reference to the load level table includes a reference to the client side script file and an indication of the load level associated with the client side script file.
Way.
제1항에 있어서,
상기 자원은 웹 페이지를 포함하는
방법.
The method of claim 1,
The resource includes a web page
Way.
제1항에 있어서,
상기 자원은 웹 애플리케이션을 포함하는
방법.
The method of claim 1,
The resource includes a web application
Way.
컴퓨터 판독가능 명령어가 저장되어 있는 광학 디스크, 솔리드 스테이트 메모리 장치 혹은 자기 저장 장치 중 하나 이상을 포함하는 컴퓨터 저장 매체로서, 상기 명령어는 컴퓨터에 의해 실행되는 경우에, 상기 컴퓨터로 하여금,
클라이언트측 스크립트 파일로의 참조를 포함하는 웹 자원과 연관된 코드를 수신하게 하고,
상기 참조와 연관된 클라이언트측 스크립트 파일을 등록하게 하고,
상기 클라이언트측 스크립트 파일을 분석해서 상기 클라이언트측 스크립트 파일이 의존하는 추가 클라이언트측 스크립트 파일을 식별하게 하고,
상기 클라이언트측 스크립트 파일과 연관된 클라이언트측 스크립트 파일 의존관계를 구하게 하며,
상기 구해진 클라이언트측 스크립트 파일 의존관계를 나타내는 데이터를 출력하게 하되,
상기 클라이언트측 스크립트 파일과 연관된 상기 클라이언트측 스크립트 파일 의존관계를 구하게 하는 것은,
분석할 상기 클라이언트측 스크립트 파일을 선택하게 하는 것과,
상기 클라이언트측 스크립트 파일이 이전에 분석된 적이 없음을 판정하게 하는 것과,
상기 클라이언트측 스크립트 파일이 이전에 분석된 적이 없다는 판정에 응답하여, 상기 클라이언트측 스크립트 파일이 분석될 것으로 마킹하기 위한 노드 채색 처리를 수행하게 하는 것
을 포함하고,
상기 데이터는 상기 클라이언트측 스크립트 파일로의 상기 참조 및 상기 클라이언트측 스크립트 파일이 로딩될 로드 레벨을 포함하는 테이블을 포함하는
컴퓨터 저장 매체.
A computer storage medium comprising at least one of an optical disc, a solid state memory device, or a magnetic storage device having computer readable instructions stored thereon, wherein the instructions, when executed by a computer, cause the computer to:
Receive code associated with a web resource that contains a reference to a client-side script file,
Register the client-side script file associated with the reference,
Analyze the client-side script file to identify additional client-side script file upon which the client-side script file depends,
Obtain a client side script file dependency associated with the client side script file,
Outputting data indicating the obtained client-side script file dependency,
Obtaining the client-side script file dependency associated with the client-side script file,
Selecting the client-side script file to analyze,
Determining that the client-side script file has not been previously analyzed;
In response to determining that the client-side script file has not been previously analyzed, causing a node coloring process to mark the client-side script file to be analyzed.
Including,
The data includes a table containing the reference to the client side script file and the load level at which the client side script file is to be loaded.
Computer storage media.
제9항에 있어서,
상기 클라이언트측 스크립트 파일 의존관계를 구하게 하는 것은, 상기 클라이언트측 스크립트 파일에 의존하는 다른 클라이언트측 스크립트 파일을 판정하게 하는 것을 더 포함하는
컴퓨터 저장 매체.
The method of claim 9,
Obtaining the client-side script file dependency further includes determining another client-side script file that depends on the client-side script file.
Computer storage media.
제9항에 있어서,
상기 데이터는,
상기 클라이언트측 스크립트 파일에 대응하는 제 1 노드,
상기 클라이언트측 스크립트 파일이 의존하는 제 2 클라이언트측 스크립트 파일에 대응하는 제 2 노드, 및
상기 클라이언트측 스크립트 파일과 상기 제 2 클라이언트측 스크립트 파일 간의 에지 - 상기 에지는 상기 제 2 클라이언트측 스크립트 파일에 대한 상기 클라이언트측 스크립트 파일의 의존관계에 대응함 -
에 대응하는 데이터를 포함하는 데이터 구조를 포함하는
컴퓨터 저장 매체.
The method of claim 9,
The data is,
A first node corresponding to the client-side script file,
A second node corresponding to a second client-side script file upon which the client-side script file depends;
An edge between the client side script file and the second client side script file, the edge corresponding to a dependency of the client side script file to the second client side script file;
A data structure containing data corresponding to
Computer storage media.
제9항에 있어서,
상기 클라이언트측 스크립트 파일을 등록하게 하는 것은,
데이터 구조를 생성하게 하는 것과,
상기 데이터 구조에 상기 클라이언트측 스크립트 파일에 대응하는 노드를 추가하게 하는 것
을 포함하는
컴퓨터 저장 매체.
The method of claim 9,
Registering the client-side script file
Creating data structures,
Add a node corresponding to the client-side script file to the data structure.
Containing
Computer storage media.
제9항에 있어서,
상기 클라이언트측 스크립트 파일을 등록하게 하는 것은,
로드 레벨 테이블을 생성하게 하는 것과,
상기 로드 레벨 테이블로의 참조를 추가하게 하는 것
을 포함하되,
상기 로드 레벨 테이블로의 참조는 상기 클라이언트측 스크립트 파일로의 참조 및 상기 클라이언트측 스크립트 파일과 연관된 로드 레벨의 표시를 포함하고,
상기 로드 레벨은 상기 웹 자원의 렌더링 동안 상기 클라이언트측 스크립트 파일이 로딩될 시점을 나타내는
컴퓨터 저장 매체.
The method of claim 9,
Registering the client-side script file
To generate load level tables,
To add a reference to the load level table
Including,
The reference to the load level table includes a reference to the client side script file and an indication of the load level associated with the client side script file,
The load level indicates when the client side script file is to be loaded during the rendering of the web resource.
Computer storage media.
컴퓨터 판독가능 명령어가 저장되어 있는 광학 디스크, 솔리드 스테이트 메모리 장치 혹은 자기 저장 장치 중 하나 이상을 포함하는 컴퓨터 저장 매체로서, 상기 명령어는 컴퓨터에 의해 실행되는 경우에, 상기 컴퓨터로 하여금,
클라이언트측 스크립트 파일로의 참조를 포함하는 자원과 연관된 코드를 수신하게 하고,
상기 코드를 기초로, 상기 코드의 렌더링 동안 상기 클라이언트측 스크립트 파일이 로딩될 시점을 나타내는 적어도 2개의 로드 레벨을 정의하게 하고,
상기 코드에 의해 참조되는 상기 클라이언트측 스크립트 파일을 등록하게 하고,
상기 클라이언트측 스크립트 파일들 중 적어도 하나가 의존하는 추가 클라이언트측 스크립트 파일을 식별하도록 상기 등록된 클라이언트측 스크립트 파일을 분석하게 하고,
상기 추가 클라이언트측 스크립트 파일과 연관된 스크립트 파일 의존관계를 구하게 하고,
구해진 상기 스크립트 파일 의존관계를 나타내는 데이터를 상기 컴퓨터와 통신하는 클라이언트 장치로 출력하게 하되,
상기 추가 클라이언트측 스크립트 파일과 연관된 스크립트 파일 의존관계를 구하게 하는 것은,
상기 클라이언트측 스크립트 파일 중 적어도 하나를 선택하게 하는 것,
상기 클라이언트측 스크립트 파일 중 적어도 하나가 이전에 분석된 적이 없음을 판정하게 하는 것, 및
상기 클라이언트측 스크립트 파일 중 적어도 하나가 이전에 분석된 적이 없다는 판정에 응답하여, 상기 클라이언트측 스크립트 파일 중 적어도 하나를 방문되는 것으로 마킹하는 것
을 포함하는
컴퓨터 저장 매체.
A computer storage medium comprising at least one of an optical disc, a solid state memory device, or a magnetic storage device having computer readable instructions stored thereon, wherein the instructions, when executed by a computer, cause the computer to:
Receive code associated with the resource that contains a reference to the client-side script file,
Based on the code, define at least two load levels that indicate when the client-side script file is to be loaded during the rendering of the code,
Register the client-side script file referenced by the code,
Analyze the registered client-side script file to identify an additional client-side script file upon which at least one of the client-side script files depends,
Obtain a script file dependency associated with the additional client-side script file,
Outputting data representing the obtained script file dependency to a client device communicating with the computer,
Obtaining a script file dependency associated with the additional client side script file,
Selecting at least one of the client-side script files,
Determine that at least one of the client-side script files has not been previously analyzed, and
In response to determining that at least one of the client-side script files has not been previously analyzed, marking at least one of the client-side script files as being visited.
Containing
Computer storage media.
제14항에 있어서,
상기 스크립트 파일 의존관계를 구하게 하는 것은, 상기 클라이언트측 스크립트 파일 중 적어도 하나에 의존하는 다른 클라이언트측 스크립트 파일을 판정하게 하는 것을 더 포함하는
컴퓨터 저장 매체.
The method of claim 14,
Obtaining the script file dependency further includes determining another client side script file that depends on at least one of the client side script files.
Computer storage media.
제14항에 있어서,
상기 데이터는,
상기 클라이언트측 스크립트 파일에 대응하는 노드와,
상기 클라이언트측 스크립트 파일 중 적어도 2개 사이의 적어도 하나의 에지 - 상기 에지는 상기 클라이언트측 스크립트 파일 중 적어도 2개 사이의 스크립트 파일 의존관계를 나타냄 -
를 포함하는 데이터 구조를 포함하는
컴퓨터 저장 매체.
The method of claim 14,
The data is,
A node corresponding to the client-side script file;
At least one edge between at least two of the client-side script files, the edge indicating a script file dependency between at least two of the client-side script files
Containing a data structure containing
Computer storage media.
제16항에 있어서,
상기 데이터는,
상기 적어도 2개의 클라이언트측 스크립트 파일로의 참조와,
상기 적어도 2개의 클라이언트측 스크립트 파일이 로딩될 시점을 나타내는 적어도 하나의 로드 레벨
을 포함하는 테이블을 더 포함하는
컴퓨터 저장 매체.
The method of claim 16,
The data is,
A reference to the at least two client-side script files,
At least one load level indicating when the at least two client-side script files are to be loaded
Further comprising a table containing
Computer storage media.
제14항에 있어서,
상기 클라이언트측 스크립트 파일을 등록하게 하는 것은,
데이터 구조를 생성하게 하는 것과,
상기 데이터 구조에 상기 클라이언트측 스크립트 파일에 대응하는 노드를 추가하게 하는 것과,
로드 레벨 테이블을 생성하게 하는 것과,
상기 로드 레벨 테이블로의 참조를 추가하게 하는 것
을 포함하되,
상기 로드 레벨 테이블로의 참조는 상기 클라이언트측 스크립트 파일을 나타내는 데이터 및 상기 클라이언트측 스크립트 파일과 연관된 로드 레벨을 포함하는
컴퓨터 저장 매체.
The method of claim 14,
Registering the client-side script file
Creating data structures,
Adding a node corresponding to the client-side script file to the data structure;
To generate load level tables,
To add a reference to the load level table
Including,
The reference to the load level table includes data representing the client side script file and a load level associated with the client side script file.
Computer storage media.
제9항에 있어서,
상기 웹 자원은 웹 페이지를 포함하는
컴퓨터 저장 매체.
The method of claim 9,
The web resource includes a web page
Computer storage media.
제9항에 있어서,
상기 웹 자원은 웹 애플리케이션을 포함하는
컴퓨터 저장 매체.
The method of claim 9,
The web resource includes a web application
Computer storage media.
KR1020147020003A 2012-01-19 2013-01-16 Managing script file dependencies and load times KR102036392B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/353,320 2012-01-19
US13/353,320 US9037636B2 (en) 2012-01-19 2012-01-19 Managing script file dependencies and load times
PCT/US2013/021614 WO2013109555A1 (en) 2012-01-19 2013-01-16 Managing script file dependencies and load times

Publications (2)

Publication Number Publication Date
KR20140116874A KR20140116874A (en) 2014-10-06
KR102036392B1 true KR102036392B1 (en) 2019-10-24

Family

ID=48798123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147020003A KR102036392B1 (en) 2012-01-19 2013-01-16 Managing script file dependencies and load times

Country Status (6)

Country Link
US (1) US9037636B2 (en)
EP (1) EP2805251B1 (en)
JP (1) JP6073372B2 (en)
KR (1) KR102036392B1 (en)
CN (1) CN104081377B (en)
WO (1) WO2013109555A1 (en)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10466989B2 (en) 2011-09-02 2019-11-05 Microsoft Technology Licensing, Llc. Fast presentation of markup content having script code
US10146885B1 (en) * 2012-12-10 2018-12-04 Emc Corporation Method and system for deciding on ordering of scripting language source code for dependency resolution
US10614490B2 (en) 2013-08-15 2020-04-07 OpenX Technologies, Inc. Integrated architecture for performing online advertising allocation
US9990656B2 (en) 2013-08-16 2018-06-05 OpenX Technolgoies, Inc. System architecture and methods for facilitating client-side real-time auctions of advertising inventory
US11276088B1 (en) * 2013-08-16 2022-03-15 OpenX Technologies, Inc. System architecture and methods for online real-time auctions of advertising inventory
CN106462489B (en) * 2014-06-24 2019-06-18 株式会社岛津制作所 Analytical equipment management system
CN105701113B (en) 2014-11-27 2019-04-09 国际商业机器公司 Method and apparatus for optimizing webpage preloading
CN106547527B (en) * 2015-09-22 2020-01-21 阿里巴巴集团控股有限公司 JavaScript file construction method and device
CN106570041A (en) * 2015-10-12 2017-04-19 北京国双科技有限公司 Method and device for splicing script file
US9910679B2 (en) * 2015-10-15 2018-03-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selective loading of components within a node to speed up maintenance actions
US10467251B2 (en) 2015-10-23 2019-11-05 Oracle International Corporation System and method for automatic dependency analysis for use with a multidimensional database
CN106845221A (en) * 2016-11-09 2017-06-13 哈尔滨安天科技股份有限公司 A kind of recognition methods of script class file format and system based on grammatical form
US10481876B2 (en) * 2017-01-11 2019-11-19 Microsoft Technology Licensing, Llc Methods and systems for application rendering
US10565802B2 (en) * 2017-08-31 2020-02-18 Disney Enterprises, Inc. Collaborative multi-modal mixed-reality system and methods leveraging reconfigurable tangible user interfaces for the production of immersive, cinematic, and interactive content
US10664248B2 (en) 2018-07-16 2020-05-26 Servicenow, Inc. Systems and methods for comparing computer scripts
CN111324838A (en) * 2020-02-18 2020-06-23 北京达佳互联信息技术有限公司 Page display method, device, client and storage medium
CN112579101B (en) * 2020-12-21 2023-07-18 广州博冠信息科技有限公司 Task script management and control method and device, electronic equipment and storage medium
CN112732267A (en) * 2021-01-11 2021-04-30 珠海金山网络游戏科技有限公司 Method, apparatus and medium for reducing bundle dependency chain redundancy
CN113836454A (en) * 2021-09-15 2021-12-24 深圳壹账通智能科技有限公司 Content display page display method, device, medium and equipment
CN114637548A (en) * 2022-02-18 2022-06-17 高德信息技术有限公司 Dependency module loading method and device and computer program product

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201705A1 (en) 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US20080271046A1 (en) 2007-04-27 2008-10-30 Microsoft Corporation Dynamically loading scripts
US20090031210A1 (en) 2007-07-26 2009-01-29 International Business Machines Corporation Optimized page script downloads in a component based architecture

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449638B1 (en) * 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US7310801B2 (en) 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6961750B1 (en) * 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US20030050932A1 (en) * 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
SE0100190L (en) * 2001-01-24 2002-07-25 Ericsson Telefon Ab L M An arrangement and method for presentation customer customization in a portal structure.
JP4208081B2 (en) * 2004-12-27 2009-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション System, web server, method and program for adding personalized value to multiple websites
WO2006124401A2 (en) * 2005-05-16 2006-11-23 Planview, Inc. Method of using a directed graph, generating a display for a directed graph, and a system for use with the method
US7904892B2 (en) * 2006-01-06 2011-03-08 Northrop Grumman Corporation Systems and methods for identifying and displaying dependencies
US8291377B2 (en) 2006-01-25 2012-10-16 Microsoft Corporation External configuration of processing content for script
CN101849228B (en) * 2007-01-16 2013-05-08 吉兹莫克斯有限公司 Method and system for creating it-oriented server-based web applications
US8443346B2 (en) * 2007-01-18 2013-05-14 Aol Inc. Server evaluation of client-side script
US7895571B2 (en) * 2007-01-25 2011-02-22 International Business Machines Corporation Method and apparatus for resolving client-side logic
US7945849B2 (en) * 2007-03-20 2011-05-17 Microsoft Corporation Identifying appropriate client-side script references
US8881105B2 (en) * 2007-04-11 2014-11-04 Patrick J. Quilter, Jr. Test case manager
US8079025B2 (en) 2007-06-08 2011-12-13 Apple Inc. Asynchronous load of source dependencies
US8504913B2 (en) * 2007-06-08 2013-08-06 Apple Inc. Client-side components
US8156420B2 (en) * 2008-11-14 2012-04-10 Microsoft Corporation Form validation with table driven error handling
US8078691B2 (en) * 2009-08-26 2011-12-13 Microsoft Corporation Web page load time prediction and simulation
US8401993B2 (en) 2009-09-14 2013-03-19 International Business Machines Corporation Analytics integration server within a comprehensive framework for composing and executing analytics applications in business level languages
US8700611B2 (en) * 2010-01-12 2014-04-15 Vmware, Inc. Extensible tree views for managing datacenter resources
US8572252B2 (en) * 2010-04-09 2013-10-29 Microsoft Corporation Extensible dynamic performance instrumentation of pages
US8762830B2 (en) * 2010-06-30 2014-06-24 Konica Minolta Laboratory U.S.A, Inc. Rendering data in the correct z-order
US8438474B1 (en) * 2011-04-27 2013-05-07 Google Inc. Speculative rendering during cache revalidation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201705A1 (en) 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US20080271046A1 (en) 2007-04-27 2008-10-30 Microsoft Corporation Dynamically loading scripts
US20090031210A1 (en) 2007-07-26 2009-01-29 International Business Machines Corporation Optimized page script downloads in a component based architecture

Also Published As

Publication number Publication date
US20130191439A1 (en) 2013-07-25
KR20140116874A (en) 2014-10-06
CN104081377A (en) 2014-10-01
JP2015508190A (en) 2015-03-16
EP2805251B1 (en) 2022-10-19
JP6073372B2 (en) 2017-02-01
EP2805251A4 (en) 2015-10-21
US9037636B2 (en) 2015-05-19
WO2013109555A1 (en) 2013-07-25
CN104081377B (en) 2017-03-08
EP2805251A1 (en) 2014-11-26

Similar Documents

Publication Publication Date Title
KR102036392B1 (en) Managing script file dependencies and load times
US10277582B2 (en) Application service architecture
US9928050B2 (en) Automatic recognition of web application
US20150378714A1 (en) Providing Context-Specific Software Updates to Client Applications
US9967370B2 (en) OData enabled mobile software applications
US9894185B2 (en) System and method for condition-based application logic shifting between a client and a server
EP2779582A2 (en) Automatic mobile application discovery and integration in a mobile telecommunication device
US11930096B2 (en) Systems and methods for rendering interactive web pages
US20210026756A1 (en) Deriving software application dependency trees for white-box testing
US20140068005A1 (en) Identification, caching, and distribution of revised files in a content delivery network
CN112087370A (en) Method, system, electronic device and computer-readable storage medium for issuing GitHub Issues
US9223557B1 (en) Application provided browser plugin
US10171627B2 (en) Download of a package of code
US20150261880A1 (en) Techniques for translating user interfaces of web-based applications
US20140331117A1 (en) Application-based dependency graph
US12001458B2 (en) Multi-cloud object store access
US11907707B2 (en) Methods and systems for orchestrating software application variant configuration
US11341154B2 (en) Normalizing encodings of requested data from a common data schema to a target data schema
US20140108413A1 (en) Responsive Images Service
US10120968B1 (en) System and method for hierarchical library searching
Varanasi et al. Restful spring
US8825686B2 (en) Expression evaluation over multiple data models
CN115729904A (en) File version management method and terminal based on domain specific language
US20180270163A1 (en) Profile guided load optimization for browsers

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right