【发布时间】:2015-02-21 13:32:12
【问题描述】:
我使用 html 和 javascript 构建 my website(我无法访问 php), 问题是,与大多数网站一样,它包含一个标题和一个底部,在所有页面中都是相同的。
对我来说,最简单的解决方案是创建一个 javascript,使用 document.write() 插入 html 内容。
所以我的html页面的内容是这样的:
<head>
non relevant code
</head>
<script type="text/javascript" src="-javascript/websites_top.js"></script>
Page content..
<script type="text/javascript" src="-javascript/websites_bottom.js"></script>
这个原理很好用,但是我意识到当内容需要一些时间来加载时会有一个烦人的问题..
问题:
网站结构如下:
+------------------+
| MENU |
+----+--------+----+
|td1 | td2 |td3 |
| | | |
| | | |
+----+--------+----+
| Bottom |
+------------------+
所以websites_top.js:结束于<td> (td2),而websites_bottom.js 开始于</td> (td2)
问题是当html页面的内容需要一些时间加载时,网站显示如下:
+-------------+
| MENU |
+----+--------+
|td1 | td2 |
| | |
| | |
+----+--------+
直到 html 内容加载完成。 (每一页的内容)
我目前正在寻找解决方案,并考虑了以下修复:
1) 混合websites_top.js和websites_bottom.js,使用另一个javascript插入td的html内容。我想避免的选项,因为这意味着所有 html 内容都应该是 javascript 字符串,这很烦人。另外我担心搜索引擎在读取页面内容时会出现问题,因为所有内容都将被写为 javascript 字符串。
2) 进行某种预加载。这样做的问题是我不想预加载网站的所有页面,那我怎么知道用户会点击哪一个呢?
我很难为我的菜单制作脚本,例如:点击预加载,然后发送到页面。
对于编程我认为解决方案 2 更好,但对于用户和网站我认为解决方案 1 更好,因为在页面之间切换时不会出现“滞后”。
你怎么看?有没有更好的方法来做到这一点? (不包括 php 或 shtml,我的“服务器”非常基本)
【问题讨论】:
-
参考您提到的预加载,您可以通过 css 将主体设置为不可见并使用 window.onload = function() { document.getElementById('myBody').style.display='block' ;}。如果您想使用 php,只需更改提供程序并使用 php - 现在不会花费很多。
-
删除了我的答案,我没有检查实际站点。我的回答完全基于您上面的陈述“websites_top.js:结束于
(td2),websites_bottom.js 开始于 (td2)”,这不是有效的 HTML。并假设“完整的新手”意味着“完整的新手”:) -
@AMartinNo1 很抱歉,我无法更改提供程序,所以 php 不是一个选项。我对您的解决方案感兴趣,问题是用户在加载内容时会看到白屏。我想它仍然是一个解决方案。另一个想法是
blocktd的内容并在websites_bottom.js末尾取消阻止它,但我认为没有css代码可以隐藏,并防止加载 -
哦,好的,没问题。空白页确实是个问题。一种可能的解决方案是在加载完成之前显示加载图标。
标签: javascript html