今天做项目时候遇到一个问题,由于采用了生成静态的CMS系统,但是页面头部需要显示用户登录的信息,也就是,没有登录时,显示登录框,用户登录后,则显示登录信息。于是用到了js调用php文件的方法。但是由于浏览器的缓存,用户登录后常常还是显示登录框,因为js文件被缓存,没有重新下载。
由于js文件是用<script>标签引入的,无法加随机数参数以使每次都重新下载。经过研究采用以下方法达到目的:
这里是头部的html代码:
<table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="377" height="35" align="left" nowrap="nowrap" id="user_status_div">
<script type="text/javascript">...
var jsFile = document.createElement("script");
jsFile.setAttribute("type","text/javascript");
jsFile.setAttribute("src","/member/user_status_js.php?random="+Math.random());
document.getElementById('user_status_div').appendChild(jsFile);
</script>
</td>
<td width="393" align="right" nowrap="nowrap"><a href="http://www.nmc.gov.cn/weatherdetail/57494.html" title="点击查看详细天气预报" target="_blank">武汉</a><span style="font-size: 9pt">
<script src="/weather.php"></script>
</span><span> <a href="http://www.nmc.gov.cn/weatherdetail/57494.html" title="点击查看详细天气预报" target="_blank">更多</a> <a
onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://www.cnmamia.com');return false;"
href="http://www.qg.org.cn#">设为首页</a> <a href='#' onClick="javascript:window.external.AddFavorite('{dede:global name="cfg_basehost"/}','{dede:global name="cfg_webname"/}');">收藏本站</a></span></td>
</tr>
</table>
这里是生成调用js的php文件:
<?php
if(!isset($_COOKIE['DedeUserID'])||$_COOKIE['DedeUserID']=='')
{
?>
document.getElementById("user_status_div").innerHTML='<form id="form1" name="form1" method="post" action="/member/index_do.php">[<a href="/member/index_do.php?fmdo=user&dopost=regnew">会员注册</a>] 用户名<input type="text" name="userid" id="userid" class="user" /> 密码<input name="pwd" type="password" class="user" /> <input type="submit" name="btnsubmit" id="btnsubmit" value="登录" class="login" /><input type="hidden" name="fmdo" value="login"><input type="hidden" name="dopost" value="login"><input type="hidden" name="gourl" id="gourl" value="'+window.location.href+'"><input name="nochvd" type="hidden" id="nochvd" value="1" /></form>';
<?php
}
else
{
require_once(dirname(__FILE__)."/config.php");
require_once(dirname(__FILE__)."/../include/config_base.php");
$dsql = new DedeSql(false);
$query="Select userid From #@__member where id=".$_COOKIE['DedeUserID'];
$username = $dsql->GetOne($query);
$dsql->Close();
?>
document.getElementById("user_status_div").innerHTML='欢迎您 <?php echo($username['userid']);?> [<a href="/member/index.php">用户中心</a>] [<a href="/member/index.php?uid=<?php echo($username['userid']);?>">我的空间</a>] [<a href="/member/index_do.php?fmdo=login&dopost=exit&forward='+window.location.href+'">退出登录</a>]';
<?php
}
?>
注意这里采用了crateElement方法来动态创建<script>标签,达到了添加随机参数的目的。另外,在调用的js文件中,必须采用innerHTML方法,而不是直接document.write,否则排版可能会不正确。
希望此雕虫小技能给你带来帮助。
本文出处:http://blog.csdn.net/lonestone/archive/2007/11/17/1889741.aspx
分享到:
相关推荐
这种机制在大部分情况下是有益的,但在开发和调试阶段,如果页面缓存了JavaScript文件,就可能导致修改后的脚本不能立即生效。 实现HTML页面不缓存JavaScript的方法主要有两种,一种是通过在JavaScript文件的URL...
一个有效的方法是修改IIS配置文件Metabase.xml来禁止IIS缓存特定目录下的静态文件。具体步骤包括: 1. 设置IIS允许运行时编辑Metabase.xml文件。打开IIS管理器,进入属性页,勾选“允许直接编辑配置数据库”选项。 ...
- 新闻系统:发布新闻时,动态生成对应的静态HTML页面,方便用户快速访问和搜索引擎收录。 - 电商网站:产品详情页可采用静态化,提高页面加载速度,提升用户体验。 6. **学习和参考** - 深入理解Razor语法和ASP...
在Web开发中,提高网站性能和用户体验的一个关键策略是有效地缓存静态资源,如CSS、JavaScript文件等。静态资源缓存能够减少网络延迟,减轻服务器压力,并加速页面加载时间。以下将详细介绍关于“web服务器缓存静态...
Spring Boot Web 静态文件缓存处理的方法 本篇文章主要介绍了在 Spring Boot 中处理静态文件缓存的方法。静态文件缓存处理是 Web 开发中非常重要的一步,特别是在移动设备上访问时,静态文件的加载速度会对用户体验...
当浏览器加载一个网页后,为了加快后续访问速度,会将页面的静态资源(如HTML、CSS、JavaScript文件、图片等)存储在本地缓存中。然而,当开发者更新了这些资源时,如果用户浏览器仍使用旧的缓存版本,可能导致页面...
"通用静态页面生成系统(Engineer) v.1"可能是一个用于生成静态HTML页面的工具。这样的系统通常适用于内容管理系统(CMS),它能够预先渲染动态内容为静态HTML,从而提供更快的访问速度。系统的具体实现可能包括以下...
这样做是因为静态HTML页面通常比动态页面加载更快,因为它们不需经过服务器端的解释和执行过程。 生成静态HTML的过程可以是自动的,例如在网站发布时,动态内容首先被渲染成HTML,然后保存到文件系统。另一种方法是...
这个模板可能包括了登录页面、主界面以及其他功能页面的HTML、CSS和JavaScript文件,以及必要的图片和其他资源。 在使用这个模板进行开发时,你需要了解以下几个关键点: 1. **目录结构**:Java Web项目的标准目录...
静态页面是由HTML、CSS和JavaScript等静态文件组成的,内容在服务器端创建后直接发送到客户端,而动态页面则是在用户请求时由服务器端的脚本(如PHP、ASP、JSP等)生成。标题提到的“通用首页静态化工具”是一个专门...
在现代Web应用开发中,优化用户体验和提升性能是至关重要的任务。"延时加载+静态资源本地缓存"是两...在提供的压缩包文件"静态资源本地缓存和延时加载"中,应该包含了具体的代码示例和实现细节,供读者深入学习和实践。
Java页面静态化是一种提高Web应用性能的技术,它通过将动态生成的HTML页面转换为静态HTML文件,从而减少了服务器处理请求的负担,加快了用户访问速度。这种技术在高并发、大数据量的网站中尤其重要,因为它能显著...
在HTML页面中,缓存主要涉及三部分:页面内容、CSS样式和JS文件。 1. **页面内容缓存控制**: 通过在`<head>`标签内添加特定的HTTP头部元信息,可以禁止浏览器缓存页面内容。例如: ```html ``` 这些...
在Java Web开发中,页面静态化通常涉及到将动态生成的HTML页面转化为纯HTML文件,以便用户请求时无需通过服务器执行复杂的脚本逻辑,直接由Web服务器发送静态页面,从而减少服务器负载并加快页面加载速度。...
总的来说,自动添加版本号是解决浏览器缓存问题的有效手段,它可以确保用户始终能够获取到最新版本的CSS和JavaScript文件。通过JavaScript、服务器端语言或构建工具,开发者可以轻松地实现这一功能,从而提供更好的...
压缩包中的文件名称列表“软件项目管理后台静态Html页面”可能包含了所有这些页面的源代码文件。这些文件通常以.html为扩展名,但可能还包括.css和.js文件,以及图片和其他资源文件。 在部署时,静态页面会被上传到...
这在PHP网站中常用于实现伪静态,使得URL看起来像是静态HTML页面,但实际由PHP动态生成。 2. **IIS静态文件配置**: IIS是Microsoft提供的Web服务器,它允许管理员配置如何处理不同类型的文件。对于静态文件(如...
1. **性能提升**:静态HTML文件直接由浏览器解析,无需执行服务器端的脚本,加载速度更快。 2. **SEO优化**:搜索引擎更容易抓取静态内容,有助于提升网站在搜索结果中的排名。 3. **安全增强**:静态页面没有动态...
5. **内容管理系统**:许多CMS系统如Umbraco、Sitecore支持自定义输出格式,包括生成静态HTML页面。 **四、注意事项** 1. **更新管理**:静态化后,若动态内容更新,需同步更新静态页面,避免数据不同步。 2. **...
标题“PHP静态文件生成类库”暗示我们要讨论的是一个专门用于创建静态HTML页面的PHP类库。这种类库的主要作用是将动态内容转换为静态文件,以便于后续的快速访问。这在内容管理系统(CMS)、博客平台或任何需要频繁...