The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
Although the present examples are described and illustrated herein as being implemented in a computing and networking system, the system described is provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of computing systems.
Web content, as understood by those skilled in the art, is typically defined and implemented using various types of code such as hypertext markup language (“HTML”) and the like, text, formatting codes, various types of controls, style sheets, files, and the like. Such code is typically downloaded from a web site to a client device or local device, the code being interpreted and/or executed to render and display the web content. Portions of such code, referred to herein as “operable elements”, may define and provide for the functionality of various sections or portions of a web page, such as sections 120, 130 and 140 and the like.
In one example a drop site is a graphically defined location acting as the “drop destination” for a typical drag-and-drop action. Such a drop site may be graphically represented using any recognizable construct. By dragging-and-dropping a web content selection onto a drop site, a user causes the selection to be extracted and saved for future reference. Alternatively, menu selections, key strokes, or the like may be used to identify a selection to be extracted and saved for future reference.
Example method 400 starts 410 with a user identifying and selecting a portion 420 of web content. Such a portion may include any part or parts of a web page or an entire web page. In one example, the user may drag-and-drop 430 the selected portion(s) to a drop site, thus beginning an extraction and saving operation. In alternative examples, the user may identify and select the portion(s) to be extracted and saved in a variety of ways not including drag-and-drop or a drop site, such as, but not limited to, the use of menus, keystrokes, buttons, controls, and/or programmatic means or the like.
Next, the identified and selected portion(s) is extracted 440 from the web content. Extraction is typically performed by the client software and includes identifying and extracting all operable elements of the web content required for the selected portion(s) to fully operate on the local device without network access to the original web content's web site. Full operation includes the operation of any selected links, text, formatting, graphics, controls and the like, any advertisements, banners, pop-ups and the like, as on the original web content. Extraction includes extracting all portions of web content code required for full operation of the selected portion(s), such code referred to herein as operable elements.
Further included with the extracted code are the operable elements for any web pages or content linked to by the selected portion, and for any pages those pages may link to—the chain of links. This extraction of code for the chain of links is carried on to a pre-defined depth. For example, the client may extract web content for the selected portion and for the web content of any links included in the selected portion, but no further web content—a depth of selection itself and one level down. Such a pre-defined depth may be configurable by the user and/or may be pre-set by the client. Extraction of links and associated operable elements may also be limited or excluded based on other properties, factors and/or considerations including, but not limited to, address, content, size of content, etc.
Next, the extracted operable elements of the selected content are saved 450 in a local store such that they can later be accessed. In one example the user provides a name via a naming mechanism to identify the saved content. Such a naming mechanism may be provided via a user interface or some other conventional method or the like. The user may also group or organize the content with other previously extracted and saved content. Once the save operation is complete the example method 400 is done 460. In general, all operable elements required for the full operation of the selected portion(s) are extracted from the web content and saved locally such that the selected portion(s) can later be rendered, displayed and made fully-functional on the client, within the depth limits described herein, without requiring a network connection or access to the selected web content's original web site.
Computing environment 600 typically includes a general-purpose computing system in the form of a computing device 601 coupled to various peripheral devices 602, 603, 604 and the like. System 600 may couple to various input devices 603, including keyboards and pointing devices, such as a mouse or trackball, via one or more I/O interfaces 612. The components of computing device 601 may include one or more processors (including central processing units (“CPU”), graphics processing units (“GPU”), microprocessors (“uP”), and the like) 607, system memory 609, and a system bus 608 that typically couples the various components. Processor 607 typically processes or executes various computer-executable instructions to control the operation of computing device 601 and to communicate with other electronic and/or computing devices, systems or environment (not shown) via various communications connections such as a network connection 614 or the like. System bus 608 represents any number of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a serial bus, an accelerated graphics port, a processor or local bus using any of a variety of bus architectures, and the like.
System memory 609 may include computer readable media in the form of volatile memory, such as random access memory (“RAM”), and/or non-volatile memory, such as read only memory (“ROM”) or flash memory (“FLASH”). A basic input/output system (“BIOS”) may be stored in non-volatile or the like. System memory 609 typically stores data, computer-executable instructions and/or program modules comprising computer-executable instructions that are immediately accessible to and/or presently operated on by one or more of the processors 607.
Mass storage devices 604 and 610 may be coupled to computing device 601 or incorporated into computing device 601 via coupling to the system bus. Such mass storage devices 604 and 610 may include a magnetic disk drive which reads from and/or writes to a removable, non-volatile magnetic disk (e.g., a “floppy disk”) 605, and/or an optical disk drive that reads from and/or writes to a non-volatile optical disk such as a CD ROM, DVD ROM 606. Alternatively, a mass storage device, such as hard disk 610, may include non-removable storage medium. Other mass storage devices may include memory cards, memory sticks, tape storage devices, and the like.
Any number of computer programs, files, data structures, and the like may be stored on the hard disk 610, other storage devices 604, 605, 606 and system memory 609 (typically limited by available space) including, by way of example, operating systems, application programs, data files, directory structures, and computer-executable instructions.
Output devices, such as display device 602, may be coupled to the computing device 601 via an interface, such as a video adapter 611. Other types of output devices may include printers, audio outputs, tactile devices or other sensory output mechanisms, or the like. Output devices may enable computing device 601 to interact with human operators or other machines or systems. A user may interface with computing environment 600 via any number of different input devices 603 such as a keyboard, mouse, joystick, game pad, data port, and the like. These and other input devices may be coupled to processor 607 via input/output interfaces 612 which may be coupled to system bus 608, and may be coupled by other interfaces and bus structures, such as a parallel port, game port, universal serial bus (“USB”), fire wire, infrared port, and the like.
Computing device 601 may operate in a networked environment via communications connections to one or more remote computing devices through one or more local area networks (“LAN”), wide area networks (“WAN”), storage area networks (“SAN”), the Internet, radio links, optical links and the like. Computing device 601 may be coupled to a network via network adapter 613 or the like, or, alternatively, via a modem, digital subscriber line (“DSL”) link, integrated services digital network (“ISDN”) link, Internet link, wireless link, or the like.
Communications connection 614, such as a network connection, typically provides a coupling to communications media, such as a network. Communications media typically provide computer-readable and computer-executable instructions, data structures, files, program modules and other data using a modulated data signal, such as a carrier wave or other transport mechanism. The term “modulated data signal” typically means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communications media may include wired media, such as a wired network or direct-wired connection or the like, and wireless media, such as acoustic, radio frequency, infrared, or other wireless communications mechanisms.
Those skilled in the art will realize that storage devices utilized to provide computer-readable and computer-executable instructions and data can be distributed over a network. For example, a remote computer or storage device may store computer-readable and computer-executable instructions in the form of software applications and data. A local computer may access the remote computer or storage device via the network and download part or all of a software application or data and may execute any computer-executable instructions. Alternatively, the local computer may download pieces of the software or data as needed, or distributively process the software by executing some of the instructions at the local computer and some at remote computers and/or devices.
Those skilled in the art will also realize that, by utilizing conventional techniques, all or portions of the software's computer-executable instructions may be carried out by a dedicated electronic circuit such as a digital signal processor (“DSP”), programmable logic array (“PLA”), discrete circuits, and the like. The term “electronic apparatus” may include computing devices or consumer electronic devices comprising any software, firmware or the like, or electronic devices or circuits comprising no software, firmware or the like.
The term “firmware” typically refers to executable instructions, code or data maintained in an electronic device such as a ROM. The term “software” generally refers to executable instructions, code, data, applications, programs, or the like maintained in or on any form of computer-readable media. The term “computer-readable media” typically refers to system memory, storage devices and their associated media, and the like.
In view of the many possible embodiments to which the principles of the present invention and the forgoing examples may be applied, it should be recognized that the examples described herein are meant to be illustrative only and should not be taken as limiting the scope of the present invention. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and any equivalents thereto.