How is e-Learning Content sent to the user in SLK
When an e-Learning package is accessed for the first time, SLK will cache the package on the web front end file system. Caching consists of unpacking the zip file and storing it on the file system. Subsequent requests will use the cached package, as long as they are not outside the cache expiration period. This will speed up subsequent showings of the package. Large packages are going to have a delay the first time someone accesses them after a cache expiration as they are unpacked.
Once the package is read from the cache then SLK will read the manifest to determine the navigation of the content and generate the table of contents for the frameset. Once this is generated the frameset is shown to the user who can then use the table of contents to navigate around the content depending on the sequencing rules of the package.
How the content is then sent to the user depends on how the content has been written. Typically each navigation node will be a separate item in the zip file, which will be downloaded when the user navigates to it. This will lead to a slight delay every time the user navigates between activities, the length of which will depend on the size of that activity and the network connection between the browser and SharePoint – just like any other web content being downloaded. I can also imagine that there are some packages which initially download all the content of all the activities. This will lead to longer start up times again depending on the size of the content, but quicker navigation within the package.
The default cache settings are to use a cache on the individual SharePoint server and to keep it for 3 days. After this it will be removed. In a server farm this means that each web front-end server will maintain it’s own cache, leading to several initial requests as the load balancing passes requests to different servers. The cache location can be set in the SlkSettings file allowing the farm servers to share a cache. This should allow more hits on the cache and hence less unpacking.
Cache settings are set in the SlkSettings file and hence are on a per site collection basis, allowing you to have different settings for different site collections. The 2 settings are PackageCacheExpirationMinutes and PackageCacheLocation.