Removing a frameset makes a very large page
I've been tasked with removing a frameset from a website (the site now needs to be indexable by various things, so the frameset must go)
The frameset is made up of a left hand explorer like tree (which could have thousands of nodes). The right hand is where the main content appears.
(I'll leave this question as not language specific as it really applies to the web generally, but we are using ASP.Net so it's made slightly easier when MasterPages are considered)
The reason it's in a frame in the first place is so that the tree isn't re-loaded every time the page refreshes...which on removing the frame is going to be an issue.
Is anyone on here aware of a mechanism that we may be able to use to solve this problem and maintain the performanc开发者_运维技巧e of the page (using frames of any kind (including iframes) is not really an option)
We considered things like a jquery panel that expands from the left hand side - this would still need to be loaded every page refresh though...
What about only loading a small part of the tree at page-load (e.g. the root level and perhaps the current node's siblings) and use Ajax to populate child nodes as and when they are clicked on?
Could partial caching be the answer?
https://web.archive.org/web/20211020113508/https://www.4guysfromrolla.com/articles/022802-1.aspx
IMHO, I don't think that even huge text menu/tree is problem - if you have 2000 items, each having let's say 20 characters, overall you download 20kB of data... that is called "tiny", if we're talking in manners of javascript :)
Just use server-side includes. In ASP you can use #include
for this.
If you don't want to transfer the tree on every page load then the only option is a frame.
Another option would be to transfer the tree on-demand (not by javascript as it won't be used by search engine bots). If the user selects a root node load the next page with the child nodes expanded, etc.
精彩评论