Electronic device for loading resource, and resource loading method using same

The electronic device optimizes web service loading by managing cache-unsaved resources during idle times, reducing network requests and improving performance by loading them separately and efficiently.

WO2026043122A1PCT designated stage Publication Date: 2026-02-26SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/010764
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-22
Filing Date
2025-07-22
Publication Date
2026-02-26

AI Technical Summary

Technical Problem

Disk caches have limited capacity and may not store certain resources, leading to repeated network downloads and increased loading times and traffic when resources are not cached.

Method used

An electronic device manages resources not stored in the disk cache as a cache-unsaved list and loads them during idle times, using separate threads and network validation to minimize network requests and optimize loading.

Benefits of technology

This approach reduces network burden and provides quick responses by efficiently loading cache-unsaved resources during idle times, minimizing network requests and improving web service performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025010764_26022026_PF_FP_ABST
    Figure KR2025010764_26022026_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device according to embodiments of the present disclosure may comprise: a memory for storing at least one instruction; and at least one processor for executing the at least one instruction. The at least one processor can download, through a network, resources required to use a first web service, store a first resource among the resources in a disk cache, generate an uncached list for a second resource not stored in the disk cache among the resources, load the first resource from the disk cache on the basis of reusing the first web service, and, on the basis of reusing the first web service, load, through the network, the second resource included in the uncached list.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic device for loading resources and method for loading resources using the same

[0001] The present disclosure relates to resource loading through a network, and more particularly, to an electronic device for loading resources from a web service through a network and a resource loading method using the same.

[0002] With the rapid development of network communication technologies, including the Internet, web services, which provide multimedia content such as text and video, are evolving into diverse forms. Users seeking access to web services can connect to web servers via the Internet using a web browser, and web servers can then provide web pages or services written using web languages ​​like HTML (Hypertext Markup Language).

[0003] When a web browser first accesses a web service, it can download various resources, such as HTML, CSS, JavaScript files, images, fonts, audio, and video. For example, some of these resources are stored in the disk cache, allowing them to be quickly loaded from the disk cache when needed.

[0004] However, disk caches have limited capacity and may not be able to store resources under certain conditions. For example, if the disk cache runs out of free space, or if the file size or format of a specific resource is unsuitable for the disk cache, the resource cannot be stored in the disk cache.

[0005] If certain resources are not stored in the disk cache, they will be re-downloaded over the network each time you use the web service, which can result in longer loading times and increased network traffic.

[0006] Various embodiments of the present disclosure can provide an electronic device and a resource loading method using the same, which minimizes network requests required for web services and provides a quick response to a user by managing resources not stored in a disk cache as a cache-unsaved list and loading the resources during idle time.

[0007] According to one aspect of the present disclosure, an electronic device includes a memory storing one or more instructions; and at least one processor operatively connected to the memory, wherein the one or more instructions, when executed by the at least one processor, cause the electronic device to perform the following operations: downloading a plurality of resources associated with a first web service through a network; storing a first resource among the plurality of resources in a disk cache; generating a cache-not-stored list for a second resource among the plurality of resources that is not stored in the disk cache; loading the first resource from the disk cache based on reusing the first web service; and loading the second resource included in the cache-not-stored list through the network based on reusing the first web service.

[0008] The second resource may be loaded through the network independently of the start or completion of the operation of loading the first resource.

[0009] The second resource may be loaded during idle time before the first web service is reused, independently of the loading of the first resource.

[0010] The one or more instructions, when executed by the at least one processor, may cause the electronic device to create a separate thread and perform an operation of loading the second resource concurrently with the operation of loading the first resource.

[0011] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform an operation of providing the first web service using the first resource and the second resource.

[0012] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform the following operations: identifying that the free capacity of the disk cache is less than or equal to a threshold capacity; and determining, based on at least one of a resource size or a resource type of the second resource, that the second resource is not to be stored in the disk cache.

[0013] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform an operation of storing at least one of a uniform resource locator (URL), a file size, a file format, cache control information, an expiration date, or a last modified date of the first resource in the disk cache.

[0014] The above cache-not-saved list may include at least one of a uniform resource locator (URL), an expiration date, a request time, a number of requests, a request order, a cache header, cache control information, or a server address of the second resource.

[0015] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform an operation of identifying reuse of the first web service, and an operation of loading the second resource included in the cache-not-saved list during idle time based on a determination that CPU usage is below a reference usage.

[0016] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform an operation of loading the second resource from the cache-not-saved list through a separate thread, independently of the process of loading the first resource from the disk cache.

[0017] The one or more instructions, when executed by the at least one processor, may cause the electronic device to perform an operation to reduce a network burden due to loading of the second resource by setting a priority of loading the second resource to a threshold priority or lower based on at least one of a validity period, a request time, a number of requests, or a request order of the second resource.

[0018] The one or more instructions, when executed by the at least one processor, cause the electronic device to perform an operation of performing a validation of the second resource included in the cache-not-saved list based on reusing the first web service, wherein the validation may include checking at least one of an expiration date, an E-Tag, a last modified date, or cache control information of the second resource.

[0019] The one or more instructions, when executed by the at least one processor, may cause the electronic device to further perform the operations of determining whether the validity period of the second resource has expired, and deleting the second resource, whose validity period has expired, from the cache-not-stored list.

[0020] The one or more instructions, when executed by the at least one processor, may further cause the electronic device to perform an operation of updating the cache-not-stored list by re-downloading the second resource over a network based on reusing the first web service based on the second resource being deleted from the cache-not-stored list.

[0021] According to one aspect of the present disclosure, a method for loading a resource, performed by at least one processor of an electronic device, may include: downloading a plurality of resources associated with a first web service through a network; storing a first resource among the plurality of resources in a disk cache; generating a cache-not-stored list for a second resource among the plurality of resources that is not stored in the disk cache; loading the first resource from the disk cache based on reusing the first web service; and loading the second resource included in the cache-not-stored list through the network based on reusing the first web service.

[0022] The operation of generating the cache-not-saved list for the second resource may include an operation of identifying that the free capacity of the disk cache is less than or equal to a threshold capacity, and an operation of determining the second resource as a resource not to be stored in the disk cache based on at least one of a resource size or a resource type of the second resource.

[0023] The operation of storing the first resource in the disk cache may include an operation of storing at least one of a uniform resource locator (URL), a file size, a file format, cache control information, an expiration date, or a last modified date of the first resource in the disk cache.

[0024] The above cache-not-saved list may include at least one of a uniform resource locator (URL), an expiration date, a request time, a number of requests, a request order, a cache header, cache control information, or a server address of the second resource.

[0025] The operation of loading the second resource included in the cache-not-saved list through the network may include an operation of identifying that the first web service is being reused, and an operation of loading the second resource included in the cache-not-saved list during idle time based on a determination that CPU usage is below a reference usage.

[0026] The operation of loading the second resource included in the cache-not-saved list through the network may include an operation of loading the second resource from the cache-not-saved list through a separate thread, independently from the process of loading the first resource from the disk cache.

[0027] The operation of loading the second resource included in the cache-not-saved list through the network may include an operation of reducing the network burden due to loading of the second resource by setting the priority of loading the second resource to a threshold priority or lower based on at least one of the validity period, request time, number of requests, or request order of the second resource.

[0028] The operation of loading the second resource included in the cache-not-saved list through the network includes an operation of performing a validation of the second resource included in the cache-not-saved list based on reusing the first web service, wherein the validation may include checking at least one of the expiration date, E-Tag, last modified date, or cache control information of the second resource.

[0029] The method may further include an operation of determining whether the validity period of the second resource has expired; and an operation of deleting the second resource, whose validity period has expired, from the cache-not-saved list.

[0030] The method may further include an operation of updating the cache-not-saved list by downloading the second resource again through a network based on reusing the first web service, based on the second resource being deleted from the cache-not-saved list.

[0031] According to one embodiment, an electronic device and a resource loading method using the same can optimize or improve the loading performance of a web service by managing resources not stored in the disk cache as a cache-unsaved list and loading the resources during idle times. According to one embodiment, an electronic device and a resource loading method using the same can minimize or reduce network requests required for a web service and provide a quick response to the user.

[0032] The effects that can be obtained from the exemplary embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly derived and understood by those skilled in the art to which the exemplary embodiments of the present disclosure pertain from the following description. In other words, unintended effects resulting from implementing the exemplary embodiments of the present disclosure can also be derived by those skilled in the art from the exemplary embodiments of the present disclosure.

[0033] The above and other aspects, features and advantages of specific embodiments of the present disclosure will become more apparent from the following description taken in conjunction with the accompanying drawings.

[0034] FIG. 1 is a diagram illustrating a network environment including an electronic device according to one embodiment of the present disclosure.

[0035] FIG. 2 is a block diagram showing the functional configuration of an electronic device according to one embodiment of the present disclosure.

[0036] FIG. 3 is a block diagram showing an exemplary configuration of an electronic device according to one embodiment of the present disclosure.

[0037] FIG. 4 is a flowchart illustrating the operation of an electronic device according to one embodiment of the present disclosure.

[0038] FIG. 5 is an exemplary diagram showing a resource information table received by an electronic device according to one embodiment of the present disclosure.

[0039] FIG. 6 is a diagram illustrating a method for storing cacheable resources in an electronic device according to one embodiment of the present disclosure.

[0040] FIG. 7 is a diagram illustrating a process in which an electronic device loads a page of a web service according to one embodiment of the present disclosure.

[0041] FIGS. 8A and 8B are diagrams comparing the loading time of a web service by an electronic device according to one embodiment of the present disclosure.

[0042] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.

[0043] At this time, it will be understood that each block of the processing flow diagrams and combinations of the flow diagrams can be performed by computer program instructions.

[0044] Additionally, each block may represent a module, engine, segment, or portion of code that contains one or more executable instructions for performing a specific logical function(s). It should also be noted that in some alternative implementation examples, the functions mentioned in the blocks may occur out of order. For example, two blocks shown in succession may in fact be performed substantially concurrently, or the blocks may sometimes be performed in reverse order, depending on the functionality they represent. The term "module" or "engine" may refer to one or more instructions that a processor executes to perform one or more functions. The term "module" or "engine" may also refer to circuitry configured to perform one or more functions.

[0045] Here, the term '~ part' used in this embodiment means software or hardware components such as FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit), and the '~ part' performs certain roles. However, the '~ part' is not limited to software or hardware. The '~ part' may be configured to be on an addressable storage medium or may be configured to execute one or more packet processing devices. Therefore, as an example, the '~ part' includes components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and / or variables. The functions provided within the components and '~ parts' may be combined into a smaller number of components and '~ parts' or further separated into additional components and '~ parts'. Additionally, the components and '~units' may be implemented to play one or more central processing units (CPUs) within the device or secure multimedia card. In one embodiment, the '~units' may include one or more packet processing units.

[0046] According to one or more embodiments, the electronic device may be a device having communication capabilities. For example, the electronic device may include at least one of a smartphone, a tablet personal computer, a mobile phone, a video phone, an e-book reader, a desktop personal computer, a laptop personal computer, a netbook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), an MP3 player, a mobile medical device, a camera, or a wearable device (e.g., a head mounted device (HMD) such as electronic glasses, electronic clothing, electronic bracelet, electronic necklace, electronic appcessory, electronic tattoo, or smart watch).

[0047] According to one or more embodiments, the electronic device may be a smart home appliance having communication capabilities.

[0048] Examples of smart home appliances may include at least one of a television, a digital video disk (DVD) player, an audio device, a refrigerator, an air conditioner, a vacuum cleaner, an oven, a microwave oven, a washing machine, an air purifier, a set-top box, a TV box (e.g., Samsung HomeSync™, Apple TV™, or Google TV™), a game console, an electronic dictionary, an electronic key, a camcorder, or an electronic picture frame.

[0049] According to one or more embodiments, examples of electronic devices may include at least one of various medical devices (e.g., magnetic resonance angiography (MRA), magnetic resonance imaging (MRI), computed tomography (CT), camera, ultrasound, etc.), navigation devices, global positioning system receivers (GPS receivers), event data recorders (EDR), flight data recorders (FDR), automotive infotainment devices, marine electronic equipment (e.g., marine navigation devices and gyrocompasses), avionics, security devices, vehicle head units, industrial or domestic robots, financial institution automatic teller machines (ATMs), or store point of sales (POSs).

[0050] According to one or more embodiments, examples of electronic devices may include at least one of furniture or a part of a building / structure including a communication function, an electronic board, an electronic signature receiving device, a projector, or various measuring devices (e.g., water, electricity, gas, or radio wave measuring devices, etc.). Electronic devices according to various embodiments of the present invention may be a combination of one or more of the various devices described above. In addition, electronic devices according to various embodiments of the present invention may be flexible devices. In addition, it will be apparent to those skilled in the art that electronic devices according to various embodiments of the present invention are not limited to the devices described above.

[0051] Hereinafter, electronic devices according to various embodiments will be described with reference to the attached drawings. The term "user" used in various embodiments may refer to a person using an electronic device or a device (e.g., an artificial intelligence electronic device) that uses an electronic device.

[0052] FIG. 1 is a diagram illustrating a network environment (100) including an electronic device (101) according to one or more embodiments of the present disclosure.

[0053] In FIG. 1, the electronic device (101) may include a bus (110), a processor (120), a memory (130), an input / output interface (140), a display (150), a communication interface (160), and / or a web engine module (170).

[0054] The bus (110) may be a circuit that connects the aforementioned components to each other and transmits communication (e.g., control messages) between the aforementioned components.

[0055] The processor (120) can receive commands from other components (e.g., the memory (130), the input / output interface (140), the display (150), the communication interface (160), or the web engine module (170)) described above through the bus (110), decode the received commands, and execute operations or data processing according to the decoded commands.

[0056] The memory (130) may store commands or data received from the processor (120) or other components (e.g., the input / output interface (140), the display (150), the communication interface (160), or the web engine module (170)) or generated by the processor (120) or other components. The memory (130) may include programming modules such as, for example, a kernel (131), middleware (132), an application programming interface (API) (133), or an application (134). Each of the above-described programming modules may be composed of software, firmware, hardware, or a combination of at least two or more thereof.

[0057] The kernel (131) may control or manage system resources (e.g., the bus (110), the processor (120), or the memory (130)) used to execute operations or functions implemented in other programming modules, such as the middleware (132), the API (133), or the application (134). In addition, the kernel (131) may provide an interface through which the middleware (132), the API (133), or the application (134) may access, control, or manage individual components of the electronic device (101).

[0058] The middleware (132) may act as an intermediary so that the API (133) or the application (134) may communicate with the kernel (131) to exchange data. In addition, the middleware (132) may perform control (e.g., scheduling or load balancing) on ​​the work requests received from the applications (134), for example, by assigning a priority for using the system resources (e.g., the bus (110), the processor (120), or the memory (130)) of the electronic device (101) to at least one of the applications (134). In one or more examples, the plurality of applications (134) may include at least one native application designed and developed for a specific operating system and hardware. In one or more examples, the plurality of applications (134) may include at least one application downloaded from a remote source, such as an app store.

[0059] API (133) is an interface for the application (134) to control functions provided by the kernel (131) or the middleware (132), and may include at least one interface or function (e.g., command) for, for example, file control, window control, image processing, or character control.

[0060] According to one or more embodiments, the application (134) may include an SMS / MMS application, an email application, a calendar application, an alarm application, a health care application (e.g., an application for measuring exercise amount and / or blood sugar, etc.), or an environmental information application (e.g., an application for providing barometric pressure, humidity, and / or temperature information). In one or more examples, the application (134) may be an application related to information exchange between the electronic device (101) and an external electronic device (e.g., the electronic device (104)). The application related to the information exchange may include, for example, a notification relay application for transmitting specific information to the external electronic device, or a device management application for managing the external electronic device.

[0061] For example, the notification delivery application may include a function for delivering notification information generated from another application of the electronic device (101) (e.g., an SMS / MMS application, an email application, a health management application, or an environmental information application) to an external electronic device (e.g., the electronic device (104)). Additionally or alternatively, the notification delivery application may, for example, receive notification information from an external electronic device (e.g., the electronic device (104)) and provide the notification information to a user. The device management application may, for example, manage (e.g., install, delete, or update) functions of at least a portion of an external electronic device (e.g., the electronic device (104)) that communicates with the electronic device (101) (e.g., turning on / off the external electronic device itself (or some components) or adjusting the brightness (or resolution) of the display), and / or an application running on the external electronic device or a service provided by the external electronic device (e.g., a call service or a message service).

[0062] According to one or more embodiments, the application (134) may include applications designated based on properties of the external electronic device (e.g., the type of electronic device) (e.g., the electronic device (104)). For example, if the external electronic device is an MP3 (MPEG audio layer-3) player, the application (134) may include applications related to music playback (e.g., audio properties). Similarly, if the external electronic device is a mobile medical device, the application (134) may include applications related to health management.

[0063] According to one or more embodiments, the application (134) may include at least one of an application specified in the electronic device (101) or an application received from an external electronic device (e.g., a server (106) or the electronic device (104)).

[0064] The input / output interface (140) can transmit commands or data input from a user through an input / output device (e.g., a sensor, a keyboard, and / or a touch screen) to, for example, the processor (120), the memory (130), the communication interface (160), and / or the web engine module (170) through the bus (110). For example, the input / output interface (140) can provide data regarding a user's touch input through a touch screen to the processor (120). In addition, the input / output interface (140) can output commands or data received from the processor (120), the memory (130), the communication interface (160), and / or the web engine module (170) through the bus (110) through the input / output device (e.g., a speaker or a display). For example, the input / output interface (140) can output voice data processed by the processor (120) to the user through a speaker.

[0065] The above display (150) can display various types of information (e.g., multimedia data or text data, etc.) to the user.

[0066] The communication interface (160) can connect communication between the electronic device (101) and an external device (e.g., the electronic device (104) or the server (106)). For example, the communication interface (160) can be connected to a network (162) through wireless communication or wired communication to communicate with the external device. The wireless communication can include, for example, at least one of Wi-Fi (wireless fidelity), BT (Bluetooth), NFC (near field communication), GPS (global positioning system), or cellular communication (e.g., LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, or GSM). The wired communication can include, for example, at least one of USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard 232), or POTS (plain old telephone service).

[0067] According to one embodiment, the network (162) may be a telecommunications network. The telecommunications network may include at least one of a computer network, the Internet, the Internet of Things, or a telephone network. According to one embodiment, a protocol (e.g., a transport layer protocol, a data link layer protocol, or a physical layer protocol) for communication between the electronic device (101) and an external device may be supported by at least one of the application (134), the application programming interface (133), the middleware (132), the kernel (131), or the communication interface (160).

[0068] The above web engine module (170) can control the overall operation of the electronic device. According to one embodiment, the web engine module (170) can control the overall operation of the resource manager (202), the RIL (Resource Information List) manager (203), the cache DB (204), the RIL DB (205), the trace analyzer (206), the decompression engine (207), and the network manager (208) included in the electronic device.

[0069] FIG. 2 is a block diagram showing a functional configuration of an electronic device according to one or more embodiments.

[0070] As illustrated in FIG. 2, an electronic device according to various embodiments of the present invention may include a web engine (201), a resource manager (202), an RIL manager (203), a cache DB (204), an RIL DB (205), a trace analyzer (206), a decompression engine (207), and a network manager (208).

[0071] The web engine (201) can control the overall operation of the electronic device. According to one embodiment, the web engine (201) can control the overall operation of the resource manager (202), the RIL manager (203), the cache DB (204), the RIL DB (205), the trace analyzer (206), the decompression engine (207), and the network manager (208) included in the electronic device.

[0072] The resource manager (202) can manage resources stored in the electronic device. For example, the resource manager (202) can manage a first resource stored in the disk cache and a second resource included in the cache-not-saved list. For example, the resource manager (202) can perform a validation check when loading the second resource. For example, the resource manager (202) can provide the loaded resource during idle time upon final loading.

[0073] The RIL manager (203) can manage a resource information list. For example, the RIL manager (203) can store the time at which a cacheable resource is requested from a server or the time at which a cacheable resource is transmitted. For example, the RIL manager (203) can check the network distance between multiple servers and receive a cacheable resource from the server with the shortest network distance among the multiple servers. For example, the RIL manager (203) can update the resource information list according to the expiration or deletion of a resource.

[0074] The cache DB (204) may be a database storing cacheable resources. In one embodiment, the cache DB (204) may store cacheable resources received from a server. For example, the cache DB (204) may efficiently manage a first resource stored in a disk cache and, when a first resource is requested, output information necessary for loading the first resource from the disk cache.

[0075] The RIL DB (205) may be a database that stores a resource information list. The resource information list may include various metadata such as the resource URL, file format, file size, cache control information, expiration date, and last modified date. For example, the resource information list may include a cache-unsaved list. The cache-unsaved list may include information about a second resource that has not been cached due to a disk cache capacity limit or a restriction on a specific resource format. For example, the RIL DB (205) may store an updated resource information list based on a resource information list received from a server. For example, the RIL DB (205) may maintain a cache-unsaved list and, when loading a second resource, output information necessary for validating and loading the second resource.

[0076] The tracking analyzer (206) can manage information such as the request time, request order, and number of requests for resources when an electronic device uses a web service. For example, the tracking analyzer (206) can record and analyze the time, order, and number of requests for cacheable or uncacheable resources from a web service via a browser. For example, when reusing a web service, the tracking analyzer (206) can analyze idle time to determine an appropriate or optimal time to load a second resource.

[0077] The decompression engine (207) can decompress compressed data received from the server. For example, the decompression engine (207) can quickly decompress a compressed second resource and load it into memory upon loading, thereby ensuring that the second resource is quickly provided to the user upon final loading.

[0078] The network manager (208) can perform functions such as supporting and managing communication with the server. For example, the network manager (208) can monitor network status for loading of second resources, perform loading under optimal network conditions, and minimize network load.

[0079] FIG. 3 is a block diagram illustrating an exemplary configuration of an electronic device (301) according to one or more embodiments.

[0080] The electronic device (301) may, for example, constitute all or part of the electronic device (101) illustrated in FIG. 1. In FIG. 3, the electronic device (301) may include one or more application processors (APs) (310), a communication module (320), a subscriber identification module (SIM) card (324), a memory (330), a sensor module (340), an input device (350), a display (360), an interface (370), an audio module (380), a camera module (391), a power management module (395), a battery (396), an indicator (397), and / or a motor (398). In one embodiment, the network environment (300) may include the electronic device (301).

[0081] The AP (310) can control a plurality of hardware or software components connected to the AP (310) by running an operating system or application program, and can perform various data processing and operations, including multimedia data. The AP (310) can be implemented as, for example, a system on chip (SoC). According to one embodiment, the AP (310) can further include a GPU (graphics processing unit).

[0082] The communication module (320) (e.g., the communication interface (160)) can perform data transmission and reception in communication between the electronic device (301) (e.g., the electronic device (101)) and other electronic devices (e.g., the electronic device (104) or server (106)) connected via a network. According to one embodiment, the communication module (320) can include a cellular module (321), a Wifi module (323), a BT module (325), a GPS module (327), an NFC module (328), and an RF (radio frequency) module (329).

[0083] The cellular module (321) can provide voice calls, video calls, text services, or Internet services through a communication network (e.g., LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, or GSM). In addition, the cellular module (321) can perform identification and authentication of an electronic device within a communication network, for example, by using a subscriber identification module (e.g., SIM card (324)). According to one embodiment, the cellular module (321) can perform at least some of the functions that the AP (310) can provide. For example, the cellular module (321) can perform at least some of the multimedia control functions.

[0084] According to one embodiment, the cellular module (321) may include a communication processor (CP). In addition, the cellular module (321) may be implemented as, for example, an SoC. In FIG. 3, components such as the cellular module (321) (e.g., a communication processor), the memory (330), or the power management module (395) are illustrated as separate components from the AP (310), but according to one embodiment, the AP (310) may be implemented to include at least some of the aforementioned components (e.g., the cellular module (321)).

[0085] According to one embodiment, the AP (310) or the cellular module (321) (e.g., a communication processor) may load commands or data received from at least one of the non-volatile memory or other components connected thereto into the volatile memory and process them. In addition, the AP (310) or the cellular module (321) may store data received from at least one of the other components or generated by at least one of the other components in the non-volatile memory.

[0086] Each of the above-described Wifi module (323), the BT module (325), the GPS module (327), or the NFC module (328) may include, for example, a processor for processing data transmitted and received through the corresponding module. In FIG. 3, the cellular module (321), the Wifi module (323), the BT module (325), the GPS module (327), or the NFC module (328) are each illustrated as separate blocks, but according to one embodiment, at least some (e.g., two or more) of the cellular module (321), the Wifi module (323), the BT module (325), the GPS module (327), or the NFC module (328) may be included in one integrated chip (IC) or IC package. For example, at least some of the processors corresponding to each of the cellular module (321), the Wifi module (323), the BT module (325), the GPS module (327), or the NFC module (328) (e.g., the communication processor corresponding to the cellular module (321) and the Wifi processor corresponding to the Wifi module (323)) may be implemented as one SoC.

[0087] The RF module (329) can transmit and receive data, for example, RF signals. The RF module (329) may include, for example, a transceiver, a power amp module (PAM), a frequency filter, or a low noise amplifier (LNA). In addition, the RF module (329) may further include components for transmitting and receiving electromagnetic waves in free space in wireless communication, for example, a conductor or a wire.

[0088] In FIG. 3, the cellular module (321), the Wifi module (323), the BT module (325), the GPS module (327), and the NFC module (328) are illustrated as sharing one RF module (329), but according to one embodiment, at least one of the cellular module (321), the Wifi module (323), the BT module (325), the GPS module (327), or the NFC module (328) can transmit and receive RF signals through a separate RF module.

[0089] The SIM card (324) may be a card including a subscriber identification module and may be inserted into a slot formed in a specific location of the electronic device. The SIM card (324) may include unique identification information (e.g., integrated circuit card identifier (ICCID)) and / or subscriber information (e.g., international mobile subscriber identity (IMSI)).

[0090] The above memory (330) (e.g., the memory (130)) may include a built-in memory (332) or an external memory (334). The built-in memory (332) may include, for example, at least one of a volatile memory (e.g., a dynamic RAM (DRAM), a static RAM (SRAM), a synchronous dynamic RAM (SDRAM), etc.) or a non-volatile memory (e.g., a one-time programmable ROM (OTPROM), a programmable ROM (PROM), an erasable and programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a mask ROM, a flash ROM, a NAND flash memory, a NOR flash memory, etc.).

[0091] According to one embodiment, the built-in memory (332) may be a Solid State Drive (SSD). The external memory (334) may further include a flash drive, for example, a compact flash (CF), a secure digital (SD), a micro secure digital (Micro-SD), a mini secure digital (Mini-SD), an extreme digital (xD), and / or a Memory Stick. The external memory (334) may be functionally connected to the electronic device (301) through various interfaces. According to one embodiment, the electronic device (301) may further include a storage device (or storage medium) such as a hard drive.

[0092] The sensor module (340) can measure a physical quantity or detect an operating state of an electronic device (301) and convert the measured or detected information into an electrical signal. The sensor module (340) can include, for example, at least one of a gesture sensor (340A), a gyro sensor (340B), a pressure sensor (340C), a magnetic sensor (340D), an acceleration sensor (340E), a grip sensor (340F), a proximity sensor (340G), a color sensor (340H) (e.g., an RGB (red, green, blue) sensor), a biometric sensor (340I), a temperature / humidity sensor (340J), an illuminance sensor (340K), or an ultra violet (UV) sensor (340M).

[0093] In addition, the sensor module (340) may include one or more sensors, such as, for example, an olfactory sensor (E-nose sensor), an electromyography sensor (EMG sensor), an electroencephalogram sensor (EEG sensor), an electrocardiogram sensor (ECG sensor), an infra red (IR) sensor, an iris sensor, and / or a fingerprint sensor. The sensor module (340) may further include a control circuit for controlling at least one sensor included therein.

[0094] The input device (350) may include a touch panel (352), a (digital) pen sensor (354), a key (356), or an ultrasonic input device (358). The touch panel (352) may recognize a touch input in at least one of, for example, a capacitive, a pressure-sensitive, an infrared, or an ultrasonic manner. In addition, the touch panel (352) may further include a control circuit. In the case of a capacitive, physical contact or proximity recognition is possible. The touch panel (352) may further include a tactile layer. In this case, the touch panel (352) may provide a tactile response to the user.

[0095] The (digital) pen sensor (354) above may be implemented, for example, using a method identical or similar to that for receiving a user's touch input, or using a separate recognition sheet. The key (356) may include, for example, a physical button, an optical key, and / or a keypad. The ultrasonic input device (358) is a device that can detect sound waves from an electronic device (301) to a microphone (e.g., a microphone (388)) to confirm data through an input tool that generates an ultrasonic signal, and may function as a wireless recognition device. According to one embodiment, the electronic device (301) may also receive user input from an external device (e.g., a computer or a server) connected thereto using the communication module (320).

[0096] The display (360) (e.g., the display (150)) may include a panel (362), a hologram device (364), or a projector (366). The panel (362) may be, for example, a liquid-crystal display (LCD) or an active-matrix organic light-emitting diode (AM-OLED). The panel (362) may be, for example, implemented to be flexible, transparent, or wearable. The panel (362) may also be configured as a single module with the touch panel (352). The hologram device (364) may display a three-dimensional image in the air by utilizing interference of light. The projector (366) may display an image by projecting light onto a screen. The screen may be, for example, located inside or outside the electronic device (301). According to one embodiment, the display (360) may further include a control circuit for controlling the panel (362), the holographic device (364), and / or the projector (366).

[0097] The interface (370) may include, for example, a high-definition multimedia interface (HDMI) (372), a universal serial bus (USB) (374), an optical interface (376), and / or a D-sub (D-subminiature) (378). The interface (370) may be included, for example, in the communication interface (160) illustrated in FIG. 1. Additionally or alternatively, the interface (370) may include, for example, a mobile high-definition link (MHL) interface, a secure digital (SD) card / multi-media card (MMC) interface, and / or an infrared data association (IrDA) standard interface.

[0098] The audio module (380) can bidirectionally convert sound and electrical signals. The audio module (380) can perform various processes (e.g., encoding or decoding) related to converting sound waves and audio signals into electrical signals or vice versa. At least some components of the audio module (380) can be included in, for example, the input / output interface (140) illustrated in FIG. 1. The audio module (380) can process sound information input or output through, for example, a speaker (382), a receiver (384), an earphone (386), and / or a microphone (388).

[0099] The camera module (391) may be a device capable of capturing still images and moving images. The camera module (391) may include one or more image sensors (e.g., a front sensor or a rear sensor), a lens, an image signal processor (ISP), and / or a flash (e.g., an LED or xenon lamp).

[0100] The power management module (395) can manage the power of the electronic device (301). The power management module (395) can include, for example, a power management integrated circuit (PMIC), a charger integrated circuit (IC), or a battery and / or fuel gauge.

[0101] The PMIC may be mounted, for example, in an integrated circuit or SoC semiconductor. The charging method may be divided into wired and wireless. The charging IC may charge the battery and prevent overvoltage or overcurrent from entering from the charger. According to one embodiment, the charging IC may include a charging IC for at least one of a wired charging method and a wireless charging method. Examples of the wireless charging method include a magnetic resonance method, a magnetic induction method, and / or an electromagnetic wave method, and additional circuits for wireless charging, such as a coil loop, a resonant circuit, and / or a rectifier, may be added.

[0102] The battery gauge may measure, for example, the remaining capacity of the battery (396), and / or voltage, current, and / or temperature during charging.

[0103] The battery (396) can store or generate electricity and supply power to the electronic device (301) using the stored or generated electricity. The battery (396) can include, for example, a rechargeable battery and / or a solar battery.

[0104] The indicator (397) may indicate a specific state of the electronic device (301) or a part thereof (e.g., the AP (310)), for example, a booting state, a message state, or a charging state. The motor (398) may convert an electrical signal into mechanical vibration. The electronic device (301) may include a processing unit (e.g., a GPU) for supporting mobile TV. The processing unit for supporting mobile TV may process media data according to standards such as, for example, DMB (digital multimedia broadcasting), DVB (digital video broadcasting), and / or media flow.

[0105] According to one or more embodiments, the electronic device (301) can optimize the loading performance of a web service by managing resources not stored in the disk cache as a cache-unsaved list and loading the resources during idle times. The electronic device (301) can minimize network requests required for the web service and provide a quick response to the user.

[0106] FIG. 4 is a flowchart illustrating the operation of an electronic device (e.g., electronic device (301) of FIG. 3) according to one or more embodiments.

[0107] In FIG. 4, the electronic device (301) stores cacheable resources in a disk cache, and can load the resources from the disk cache when reconnecting to a web service. The electronic device (301) can manage cacheable resources not stored in the disk cache as a cache-unsaved list, and can load the resources via a network when reconnecting to a web service. For example, the electronic device (301) can manage cacheable resources not stored in the disk cache as a cache-unsaved list, and load the resources during idle time.

[0108] In one embodiment, the electronic device (301) may download a plurality of resources associated with a first web service through a network (operation 410), store a first resource among the plurality of resources in a disk cache (operation 420), create a cache-not-stored list for a second resource among the plurality of resources that is not stored in the disk cache (operation 430), load the first resource from the disk cache based on reusing the first web service (operation 440), and load the second resource included in the cache-not-stored list through the network based on reusing the first web service (operation 450).

[0109] In one embodiment, a web service may include at least one of a web application and a web browser. The electronic device (301) may utilize the web service over a network. For example, the electronic device (301) may execute a web application over a network. For example, the electronic device (301) may access a web browser over a network.

[0110] In one example, in operation 410, the electronic device (301) can download multiple resources associated with the first web service over a network. Refer to FIG. 5 to explain the multiple resources.

[0111] FIG. 5 is an exemplary diagram showing a resource information table received by an electronic device (e.g., electronic device (301) of FIG. 3) according to one embodiment of the present disclosure.

[0112] In FIG. 5, the electronic device (301) may receive a resource information table for a plurality of resources associated with a web service from a server. The plurality of resources may be required to use the web service. The resource information table may be a data structure including meta information of the plurality of resources (e.g., all resources required to use the web service). The resource information table may include at least one of a resource name, a file format, a file size, a uniform resource locator (URL), an expiration date, cacheability information, an E-Tag, a last modified date, a request time, a number of requests (e.g., a number of requests), a request order, a cache header, cache control information, or a server address.

[0113] For example, the electronic device (301) can access the server through the URL of the first web service. The electronic device (301) can transmit an HTTP request to the server for resources required to execute the web service. The electronic device (301) can receive various types of cacheable resources, such as HTML, CSS, JavaScript files, images, fonts, audio, and / or video files, from the server.

[0114] The multiple resources may include cacheable resources and uncacheable resources. Cacheable resources may be resources that are stored in a disk cache and can be quickly retrieved locally (e.g., from the disk cache) upon subsequent requests without having to be re-downloaded over the network. Uncacheable resources may be resources that are too volatile to be stored in a disk cache or that are designated not to be cached based on server settings. For example, the electronic device (301) may identify cacheable and uncacheable resources among the resources based on cacheability information included in the resource information table.

[0115] The electronic device (301) can download resources and manage the downloaded resources by considering the characteristics of cacheable resources. For example, the electronic device (301) can download and store the URL, file format, file size, and / or cache control information of each resource. For example, the electronic device (301) can decompress and store compressed resources received from a server using the decompression engine (207).

[0116] For example, in operation 420, the electronic device (301) may store a first resource among the plurality of resources in a disk cache. The electronic device (301) may store the first resource among the cacheable resources in the disk cache. For example, the electronic device (301) may store the first resource downloaded over a network in the disk cache, thereby quickly loading the first resource locally (e.g., from the disk cache) when requesting the same resource later.

[0117] The electronic device (301) may store at least one of the URL, file size, file format, cache control information, expiration date, or last modified date of the first resource in the disk cache. For example, the URL may be information identifying the location of the resource. For example, the file size and file format may be used to determine how to manage the storage space of the resource and how to process it upon loading. For example, the cache control information may be used to manage the cache validity of the resource. For example, the expiration date and last modified date may be used to maintain the state of the resource or to update the resource.

[0118] For example, the electronic device (301) can periodically check the validity of a first resource stored in the disk cache through the resource manager (202) and update or delete a first resource whose validity period has expired. In addition, the electronic device (301) can optimize loading performance by managing metadata of the first resource stored in the disk cache using the cache DB (204).

[0119] In one embodiment, the electronic device (301) may identify that the free capacity of the disk cache is below a threshold capacity. The electronic device (301) may determine that the second resource among the cacheable resources is not to be stored in the disk cache, based on at least one of the resource size and the resource type.

[0120] The electronic device (301) can identify a second resource that is not stored in the disk cache while simultaneously storing the first resource in the disk cache. For example, resources with large file sizes or specific formats (e.g., high-resolution video files and / or large image files) may be unsuitable for storage in the disk cache. The second resource may be a cacheable resource designated for caching, for example, according to server settings, but may not be stored in the disk cache due to the resource size and / or resource format.

[0121] For example, the electronic device (301) can monitor the current usage of the disk cache (e.g., cache capacity) and detect when the cache capacity falls below a predefined threshold. When the cache capacity falls below the predefined threshold, the electronic device (301) can determine that the resource whose size or format does not meet the constraints of the disk cache is the second resource that cannot be stored in the disk cache.

[0122] Additionally, the electronic device (301) may set a specific resource not to be stored in the cache based on cache control information. For example, the electronic device (301) may determine a resource whose cache control information includes a no-store or no-cache directive as the second resource that cannot be stored in the disk cache.

[0123] For example, in operation 430, the electronic device (301) may generate a cache-not-stored list for a second resource among the plurality of resources that is not stored in the disk cache. The electronic device (301) may generate a cache-not-stored list for a second resource among the cacheable resources that is not stored in the disk cache. For example, the electronic device (301) may identify a second resource that is not stored in the disk cache based on a capacity limit of the disk cache or a specific resource type, and generate a cache-not-stored list including information about the second resource.

[0124] The cache-unsaved list may include at least one of the URL, expiration date, request time, number of requests, request order, cache header, cache control information, or server address of the second resource. For example, the URL may indicate the location of the second resource. For example, the expiration date may define a period of time for ensuring the freshness of the second resource. For example, the request time and number of requests may indicate the frequency of use of the second resource. For example, the request order may be used to determine the priority of the second resource. For example, the cache header and cache control information may define the cache policy of the second resource. For example, the server address may be used to identify the location of the server providing the second resource.

[0125] The electronic device (301) may store a cache-unsaved list containing information about the second resource. For example, the electronic device (301) may store the cache-unsaved list in the RIL DB (205). For example, the RIL DB (205) may maintain the cache-unsaved list and, when loading the second resource, output information necessary for validating and loading the second resource.

[0126] In one example, at operation 440, the electronic device (301) may load the first resource from the disk cache based on the reuse of the first web service. For example, the electronic device (301) may identify the reuse of the first web service and check the disk cache to load the resources of the first web service. For example, the electronic device (301) may identify the re-execution of the first web application. For example, the electronic device (301) may identify the re-connection to the first web browser. For example, the disk cache may include the first resource stored when the first web service was previously used. For example, when the electronic device (301) re-executes the first web application or re-connects to the first web browser, the electronic device (301) may quickly load the first resource required for page loading from the disk cache without a network request.

[0127] When loading a first resource, the electronic device (301) may validate the first resource stored in the disk cache. The validation may be performed based on at least one of the URL, expiration date, E-Tag, or last modified date of the resource. For example, the electronic device (301) may determine that the first resource is valid if the expiration date of the first resource has not expired and the E-Tag value matches that of the server. For example, if the electronic device (301) determines that the first resource is valid, the electronic device (301) may load the valid first resource from the disk cache. In one or more examples, the validation may pass (accept) if a condition is met, such as if at least one URL matches a specified URL, if the validation is performed within the expiration date, if the resource includes an E-Tag, or if the last modified date of the resource is before a predetermined date.

[0128] The electronic device (301) can manage the first resource loaded from the disk cache through the resource manager (202). For example, the electronic device (301) can decompress the compressed first resource using the decompression engine (207) and then load the first resource. In this way, when reusing the first web service, the electronic device (301) can minimize network requests and optimize resource loading performance by loading the first resource from the disk cache.

[0129] In one example, at operation 450, the electronic device (301) may load the second resource included in the cached list through the network based on the reuse of the first web service. For example, the electronic device (301) may detect when the user re-executes the first web application or re-connects to the first web browser, and identify the second resource that needs to be loaded by referring to the cached list.

[0130] In one embodiment, the electronic device (301) can load a second resource over a network during idle time. For example, the electronic device (301) can load the second resource over a network independently from loading the first resource, and can quickly perform final loading using the loaded second resource when the second resource is required for a certain page load in the first web service. In one or more examples, the electronic device (301) can pre-load the second resource over a network during idle time before the web service is executed or displayed. In one or more examples, the electronic device (301) can load the second resource over a network independently regardless of the start and / or completion of loading the first resource.

[0131] In one embodiment, the electronic device (301) may perform a validation of the second resource included in the cache-not-saved list based on the reuse of the first web service. For example, the electronic device (301) may validate the second resource corresponding to the cache-not-saved list before loading the second resource. The electronic device (301) may validate the second resource based on at least one of the URL, expiration date, E-Tag, or last modified date of the second resource.

[0132] For example, the electronic device (301) can analyze the metadata of each second resource in the cache-not-saved list to determine whether the second resource is up-to-date. Through validation, the electronic device (301) can determine whether the second resource included in the cache-not-saved list is up-to-date or requires updating.

[0133] For example, the electronic device (301) can check the validity period of the second resource to determine whether the resource is still valid or needs to be updated. If the validity period of the second resource has expired, the electronic device (301) can redownload and update the second resource.

[0134] For example, the electronic device (301) can verify the consistency of the second resource using an E-Tag (entity tag). The E-Tag is a unique identifier indicating the version of the second resource. The electronic device (301) can compare the E-Tag provided by the server with the E-Tag included in the cached list to determine whether the second resource has changed.

[0135] The last modified date indicates the date the second resource was last modified. The electronic device (301) can determine whether the second resource has been modified based on the last modified date. For example, the electronic device (301) can determine whether the second resource has been modified by comparing the last modified date provided by the server with the last modified date currently stored in the cache.

[0136] Cache control information is information defining the caching policy of the second resource and may include HTTP headers such as Cache-Control, Expires, and / or Pragma. The electronic device (301) may check the cache status of the second resource or update the second resource based on the cache control information.

[0137] In one embodiment, the electronic device (301) can identify that the first web service is being reused and load the second resource included in the cache-not-saved list during idle time when CPU usage is below a reference usage level. In one example, the idle time can be determined when CPU usage is less than or equal to a reference usage level for a predetermined period of time.

[0138] For example, the electronic device (301) can detect when a user reuses a first web service and monitor CPU usage for the currently running process. When the idle time reaches a predetermined threshold for CPU usage, the electronic device (301) can identify a second resource requiring loading by referencing the cached list.

[0139] In one embodiment, the electronic device (301) may load the second resource based on identifying the second resource. For example, the electronic device (301) may load the second resource based on at least one of the URL, expiration date, request time, number of requests, request order, cache header, cache control information, or server address of the second resource stored in the cache-not-saved list. In this way, the electronic device (301) may optimize or improve system resource utilization and minimize or reduce network load by loading the second resource during idle time.

[0140] In one embodiment, the electronic device (301) can monitor network conditions through the network manager (208) and load the second resource under optimal network conditions. For example, the electronic device (301) can load the second resource if the network link speed (e.g., reception speed or transmission speed) is higher than the reference network speed. Accordingly, the electronic device (301) can avoid network congestion that may occur during the loading process and improve resource loading performance.

[0141] In one embodiment, the electronic device (301) can load the second resource from the cache-not-saved list through a separate thread, independently from the process of loading the first resource from the disk cache.

[0142] For example, when reusing a first web service, the electronic device (301) performs a task of loading a first resource from the disk cache. Independently of loading the first resource, the electronic device (301) can create a separate thread to load a second resource based on the cached list.

[0143] For example, the separate thread may be configured to load the second resource during idle times when CPU usage is below a threshold. In this way, the electronic device (301) can efficiently load the second resource in the background without affecting the performance of the main process. In one or more examples, the first and second resources may be loaded through separate, independent processes that can be executed in parallel.

[0144] In one embodiment, the electronic device (301) can advantageously reduce the network burden caused by loading the second resource by setting the loading priority of the second resource to a threshold priority or lower based on at least one of the validity period, request time, number of requests, or request order of the second resource. For example, the electronic device (301) can analyze the metadata of each second resource included in the cache-not-saved list and preferentially load second resources with an imminent validity period or a high request frequency.

[0145] The electronic device (301) can determine the priority of each resource based on information such as the expiration date, request time, number of requests, and / or request order of the second resource stored in the cache-unsaved list. For example, resources with an imminent expiration date may need to be loaded quickly. For example, resources with a high number of requests may be given a higher priority to improve the user experience. Additionally, the priority of resources may be changed based on the request time and request order.

[0146] The electronic device (301) can efficiently manage network load by performing loading on secondary resources set below a threshold priority based on priority. For example, the network manager (208) can monitor network conditions and load secondary resources under suitable or optimal conditions, thereby avoiding network congestion and optimizing or improving resource loading performance.

[0147] In one embodiment, the electronic device (301) sets a loading priority based on at least one of the validity period, request time, number of requests, or request order of the second resource, and can efficiently load the second resource while reducing the network burden according to the loading priority.

[0148] In one embodiment, when loading a given page on a first web service, the electronic device (301) can check whether a second resource is loaded. For example, if the second resource is loaded by being pre-downloaded during idle time, the electronic device (301) can quickly access the second resource.

[0149] If a loaded second resource exists, the electronic device (301) can immediately load the second resource on the first web service without a network request.

[0150] If the loaded second resource does not exist, the electronic device (301) may download the second resource via a network. For example, the electronic device (301) may download the second resource from the first web service via a network request. In some embodiments, the electronic device (301) may store information about the downloaded second resource in a cached list.

[0151] In this way, the electronic device (301) can provide a fast and smooth web service usage experience to the user by loading the second resource during idle time and immediately loading the second resource when a page load is required.

[0152] In one embodiment, the electronic device (301) can provide the first web service using a first resource and a second resource. The electronic device (301) can load the first resource from a disk cache and simultaneously, in parallel, and / or independently load the second resource through a network to use the first web service.

[0153] FIG. 6 is a diagram illustrating how an electronic device (301) stores cacheable resources according to one or more embodiments.

[0154] In FIG. 6, the electronic device (301) can identify cacheable resources and uncacheable resources. The electronic device (301) can store a first resource among the cacheable resources in a disk cache. The electronic device (301) can store a second resource among the cacheable resources in a cache-unsaved list. The electronic device (301) can efficiently manage the first resource and the second resource using the disk cache and the cache-unsaved list.

[0155] In one embodiment, the electronic device (301) can download various resources required for a web service via a network. These resources can be categorized into cacheable and uncacheable resources. Cacheable resources can be stored in a disk cache, allowing them to be quickly retrieved locally (e.g., from a disk cache) upon subsequent requests without having to be re-downloaded via the network. Uncacheable resources can be resources with high volatility that cannot be stored in a disk cache, or resources that are designated not to be cached based on server settings.

[0156] The electronic device (301) can analyze the downloaded resources to identify cacheable resources and uncacheable resources. For example, the cacheable resources (e.g., R1, R2, R3, R4, R5, R6, and / or R7) can include at least one of a JavaScript file, a CSS file, an HTML file, a JPG image file, a MOV video file, or an MP3 audio file.

[0157] The electronic device (301) may store a first resource among cacheable resources in a disk cache. For example, the electronic device (301) may store a first resource downloaded over a network in a disk cache, thereby quickly loading the first resource from the local disk cache when the same resource is requested later. For example, the first resource (e.g., CR1, CR2, CR3, CR4, and / or CR5) may include at least one of a JavaScript file, a CSS file, an HTML file, or a JPG image file. The electronic device (301) may store at least one of a URL, a file size, a file format, cache control information, an expiration date, or a last modified date of the first resource in the disk cache.

[0158] The electronic device (301) may generate a cache-not-saved list for a second resource that is not stored in the disk cache among cacheable resources. For example, the electronic device (301) may identify the second resource based on the capacity limit of the disk cache or a specific resource format and add the corresponding information to the cache-not-saved list. For example, the second resource (e.g., CMR1, CMR2) may include at least one of a MOV video file or an MP3 audio file. The cache-not-saved list may include at least one of the URL of the second resource, an expiration date, a request time, a number of requests, a request order, a cache header, cache control information, or a server address.

[0159] The electronic device (301) can efficiently manage the disk cache and the cache-unsaved list. For example, the electronic device (301) can periodically check the validity of the first resource and / or the second resource stored in the disk cache through the resource manager (202) and update or delete the first resource and / or the second resource whose validity period has expired. In addition, the electronic device (301) can optimize loading performance by systematically managing the metadata of the first resource and / or the second resource stored in the disk cache using the cache DB (204).

[0160] FIG. 7 is a diagram illustrating a process in which an electronic device (e.g., the electronic device (301) of FIG. 3) loads a page of a web service according to one or more embodiments.

[0161] In FIG. 7, when reusing the first web service, the electronic device (301) can load the first resource from the disk cache. When reusing the first web service, the electronic device (301) can load the second resource using the cached list. By pre-loading the second resource and then finally loading the second resource, the electronic device (301) can provide the user with a fast and smooth web service usage experience.

[0162] The electronic device (301) can load the first resource from the disk cache based on the reuse of the first web service. For example, the electronic device (301) can identify that the first web application is being re-executed or the first web browser is being re-connected, and search the disk cache for the resources required for page loading. For example, the disk cache can include the first resource that was previously stored. The electronic device (301) can quickly load the resource locally without a network request by using the disk cache. The electronic device (301) can load the valid first resource from the disk cache after checking the validity based on the URL, expiration date, E-Tag, and / or last modified date of the first resource.

[0163] The electronic device (301) may load a second resource included in the cache-not-saved list based on the reuse of the first web service. For example, the electronic device (301) may identify a re-execution of the first web application or a re-connection to the first web browser, and may identify a second resource that needs to be loaded by referencing the cache-not-saved list. For example, the electronic device (301) may pre-download the second resource included in the cache-not-saved list through a network during idle time. For example, the electronic device (301) may load the second resource, such as a MOV video file (CMR1) or an MP3 audio file (CMR2). The electronic device (301) may check the URL, expiration date, E-Tag, and / or last modified date of the second resource through a validity check, and then load the valid resource.

[0164] As shown in FIG. 7, the electronic device (301) can load the second resource from the cache-not-saved list through a separate thread, independently of the process of loading the first resource from the disk cache. For example, when reusing the first web service, the electronic device (301) can load the first resource from the disk cache and simultaneously create a separate thread to load the second resource. The separate thread can be set to load the second resource during idle time when the CPU usage is below the reference usage. By performing the loading through a separate thread, the electronic device (301) can efficiently load the second resource in the background without affecting the performance of the main process.

[0165] When loading a given page from a first web service, the electronic device (301) can check whether a second resource is loaded. If a loaded second resource exists, the electronic device (301) can immediately load the second resource without a network request. In this way, the electronic device (301) can provide a fast and smooth web service experience to the user by loading the second resource during idle time and immediately loading the second resource when a page load is required.

[0166] FIGS. 8A and 8B are diagrams comparing the loading time of a web service by an electronic device (e.g., the electronic device (301) of FIG. 3) according to one embodiment of the present disclosure.

[0167] In FIGS. 8a and 8b, the electronic device (301) can independently load the first resource and the second resource through separate threads, and minimize the network burden through priority-based loading, thereby shortening the overall loading time and improving loading efficiency.

[0168] As shown in Figure 8a, the existing web service loading method sequentially downloads and loads all necessary resources when reusing the first web service. For example, in the existing web service loading method, when a user uses a web service, the user sends an HTTP request to the server via a browser to request the necessary resources. In the existing web service loading method, the user sequentially receives resources from the server and loads the downloaded resources. In the existing web service loading method, a loading status is displayed to the user until the resources are downloaded, and the user must wait until all resources are loaded. For example, since the existing web service loading method sequentially loads all resources, the loading time may be prolonged depending on the network conditions.

[0169] As shown in FIG. 8b, the electronic device (301) of the present disclosure can shorten the loading time by loading the second resource using the cache-unsaved list. The electronic device (301) can independently perform the processes of loading the first resource and the second resource through separate threads. For example, the first resource can be quickly loaded from the disk cache. For example, the second resource can be loaded in the background through a separate thread.

[0170] Additionally, the electronic device (301) can load the second resource included in the cache-unsaved list based on priority. The priority can be determined based on at least one of the second resource's validity period, request time, number of requests, or request order. The electronic device (301) can efficiently manage network load by performing loading on the second resource set to a priority lower than a threshold based on the priority.

[0171] In one embodiment, the electronic device (301) may determine whether the validity period of the second resource has expired and delete the expired second resource from the cache-unsaved list. For example, the electronic device (301) may periodically check the validity period of each second resource included in the cache-unsaved list. The validity period may refer to the period during which the second resource can remain valid.

[0172] The electronic device (301) can compare the current time with the expiration date stored in the cached list to determine whether the expiration date has expired. For example, if the expiration date of the second resource is earlier than the current time, the electronic device (301) can determine that the expiration date of the second resource has expired.

[0173] The electronic device (301) may delete a second resource determined to have expired from the cache-not-saved list. For example, the electronic device (301) may identify a second resource whose expiration date has expired from the cache-not-saved list and delete the second resource from the cache-not-saved list.

[0174] In one embodiment, the electronic device (301) can update the cache-not-saved list by re-downloading the second resource over a network based on reusing the first web service when the second resource is deleted from the cache-not-saved list.

[0175] For example, when a user reuses a first web service, the electronic device (301) can check whether a second resource has been deleted from the cached list. If a deleted second resource is identified, the electronic device (301) can re-download the deleted second resource via the network.

[0176] The electronic device (301) can determine whether to store the second resource in the disk cache or in the cache-not-saved list. For example, the electronic device (301) can update the cache-not-saved list with information about the downloaded second resource.

[0177] In this way, the electronic device (301) of the present disclosure and the resource loading method using the same can optimize the loading performance of a web service by managing resources not stored in the disk cache as a cache-unsaved list and loading the resources during idle time.

[0178] Accordingly, the electronic device (301) of the present disclosure and the resource loading method using the same can minimize network requests required for web services and provide a quick response to the user.

[0179] However, since this has been described above, a duplicate explanation will be omitted.

[0180] The display devices according to the various embodiments disclosed in this document may take various forms. The display devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. The display devices according to the embodiments of this document are not limited to the aforementioned devices.

[0181] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B, or C," "at least one of A, B, and C," and "at least one of A, B, or C" can each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish the corresponding component from other corresponding components, and do not limit the corresponding components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as being "coupled" or "connected" to another component (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0182] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0183] Various embodiments of the present document may be implemented as software (e.g., a program) including one or more instructions stored in a storage medium (e.g., built-in memory or external memory) readable by a machine (e.g., an electronic device). For example, a processor of the machine (e.g., an electronic device) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one instruction called. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and this term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily in the storage medium.

[0184] According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0185] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In an electronic device (101), A memory (130) storing one or more instructions; and At least one processor (120) operatively connected to the memory, The one or more instructions, when executed by the at least one processor, cause the electronic device to: The act of downloading multiple resources associated with a first web service over a network; An operation of storing a first resource among the above multiple resources in a disk cache; An operation of generating a cache-unsaved list for a second resource among the above multiple resources that is not stored in the disk cache; An operation of loading the first resource from the disk cache based on reusing the first web service, and An electronic device that causes an operation to be performed to load the second resource included in the cache-not-saved list through the network based on reusing the first web service.

2. In paragraph 1, An electronic device wherein the second resource is loaded through the network independently of the start or completion of an operation of loading the first resource.

3. In paragraph 1 or 2, An electronic device wherein the second resource is loaded during idle time before the first web service is reused, independently of the loading of the first resource.

4. In any one of paragraphs 1 to 3, The one or more instructions, when executed by the at least one processor, cause the electronic device to: Simultaneously with the action of loading the first resource, an action of creating a separate thread to load the second resource An electronic device that causes something to be done.

5. In any one of paragraphs 1 to 4, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation of providing the first web service using the first resource and the second resource. An electronic device that causes something to be done.

6. In any one of paragraphs 1 to 5, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation for identifying that the free capacity of the above disk cache is less than or equal to a critical capacity, and An operation of determining that the second resource is not to be stored in the disk cache based on at least one of the resource size or resource type of the second resource. An electronic device that causes something to be done.

7. In any one of paragraphs 1 to 6, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An action of storing at least one of the uniform resource locator (URL), file size, file format, cache control information, expiration date, or last modified date of the first resource in the disk cache. An electronic device that causes something to be done.

8. In any one of paragraphs 1 to 7, The above cached non-saved list is: At least one of the uniform resource locator (URL), expiration date, request time, number of requests, request order, cache header, cache control information, or server address of the second resource, Electronic devices.

9. In any one of paragraphs 1 to 8, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An action to identify the reuse of the above first web service, and An operation of loading the second resource included in the cache-not-saved list during idle time based on the determination that the CPU usage is below the reference usage. An electronic device that causes something to be done.

10. In any one of paragraphs 1 to 9, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation of loading the second resource from the cache-unsaved list through a separate thread, independently of the process of loading the first resource from the disk cache. An electronic device that causes something to be done.

11. In any one of paragraphs 1 to 10, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation for reducing the network burden due to loading of the second resource by setting the priority of loading the second resource to a threshold priority or lower based on at least one of the validity period, request time, number of requests, or request order of the second resource. An electronic device that causes something to be done.

12. In any one of paragraphs 1 to 11, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation of performing a validation of the second resource included in the cache-unsaved list based on reusing the first web service. Causes to perform, The above validation is, Including verification of at least one of the validity period, E-Tag, last modified date, or cache control information of the second resource; Electronic devices.

13. In any one of paragraphs 1 to 12, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An action for determining whether the validity period of the above second resource has expired, and An action to delete the second resource whose validity period has expired from the above cached non-stored list. An electronic device that causes something to be done more.

14. In any one of paragraphs 1 to 13, The one or more instructions, when executed by the at least one processor, cause the electronic device to: An operation of updating the cache-unsaved list by downloading the second resource again through a network based on reusing the first web service based on the second resource being deleted from the cache-unsaved list. An electronic device that causes something to be done more.

15. A method for loading a resource, performed by at least one processor of an electronic device, The act of downloading multiple resources associated with a first web service over a network; An operation of storing a first resource among the above plurality of resources in a disk cache; An operation of generating a cache-unsaved list for a second resource among the plurality of resources that is not stored in the disk cache; An operation of loading the first resource from the disk cache based on reusing the first web service; and An operation of loading the second resource included in the cache-unsaved list through the network based on reusing the first web service; How to load resources.

Citation Information

Patent Citations

  • Apparatus and program

    JP2018132807A

  • Apparatus and method for caching web browser information based on resource type

    KR101463333B1

  • Apparatas and method for improving a loading time in an electronic device

    KR102170520B1

  • Cache control for web application resources

    US20150222724A1

  • KR20190142108A