论坛首页 Web前端技术论坛

jquery.treeview.js的网络访问性能问题

浏览 7716 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-27  
jquery.treeview.js中存在不少缺陷,为了在项目中使用,都已经解决了。但是现在碰到一个棘手的问题,在展开树中某节点时,由于树中的文件夹都要变更样式。需要调用removeClass()和addClass()的时候,对应的class中存在图片背景之类的,每次调用都会重新从服务器下载对应图片。网络访问性能极差。原来我直接制作的目录树,通常是改变图片<img>的src属性来完成的,不会发生这种现象。不知道谁碰到过,解决了的。谢谢。
   发表时间:2008-04-28  
由于树中的文件夹都要变更样式。需要调用removeClass()和addClass()的时候,

那你变更样式的方式变为直接写CSS  变更背景图片的位置
然后把背景图片合为一张,应该就不用重载了。
0 请登录后投票
   发表时间:2008-04-29  
图片应该都缓存了的(如果header对的话)
上面说的一张图也不错,用region来指定
0 请登录后投票
   发表时间:2008-05-10  
搞一张图,用background-position来变化
0 请登录后投票
   发表时间:2008-05-21  
fortaotao,你好。我正在使用jquery.treeview.js,遇到一个问题,就是单击li项不能展开或收缩树,只能单击“+”或“-”展开或收缩树。请问你是怎么解决这个问题的。
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
addLoadEvent(treeview_init);
addLoadEvent(prepareAjax);


function prepareAjax() {

	$("#navigation a").click(function(event){
		$("#mainContent").load(this.href);
		return false;
	}); 
}



列表项li用PHP读取数据库


	<ul id="navigation">
		<li class="open">标题
			<ul>
				<?php
					$rows=array();
					@mysql_connect ("localhost","root","wayBp7_c12") or die("连接数据库时出错!");
					mysql_query("SET NAMES 'UTF8'");
					@mysql_select_db("collectables") or die("打开数据库时出错!");
					$querystr="SELECT id,parent,title,text FROM col_courses WHERE parent=0 ORDER BY id";
					$result=mysql_query($querystr);
					while ($row=mysql_fetch_array($result,MYSQL_ASSOC))
						{
							$rows[]=$row;
						}
					reset($rows);
					foreach($rows as $row)
						{
							?>
							<li> <a href="<?php echo $row[text];?>"> <?php echo $row[title];?> </a>
							<?php
							$querystr2="SELECT id,parent,title,text FROM col_courses WHERE parent=$row[id] ORDER BY id";
							$result2=mysql_query($querystr2);
							$rows2=array();
							while ($row2=mysql_fetch_array($result2,MYSQL_ASSOC))
							{
								$rows2[]=$row2;
							}
							if (count($rows2)>0)
							{
								reset($rows2);
							?>
								<ul>
								<?php
								$i=0;
								foreach($rows2 as $row)
								{
								?>
									<li><a href="<?php echo $row[text];?>"> <?php echo $row[title];?> </a></li> 
								<?php
									$i=$i+1;
								}
								?>
								</ul>
							</li> 
							<?php
							unset($row2);
							}
						}
				?>
			</ul>
		</li>
	</ul>
	
0 请登录后投票
   发表时间:2008-05-26  
我使用的办法跟你稍微有点区别,不过我觉得你这个问题的原因是因为你的<a>,看源码里面对于包含a标签的文件夹,不会帮你绑定单击展开事件的。你试着去掉呢。
另外,附上我提的问题的最终错误原因。系统集成时,公司门户模块对我的所有URL进行了过滤,造成了图片的重复获取。谢谢大家的关注。现在在需要过滤的地方没有采用/*了,细化成*.html,就没有性能问题了
0 请登录后投票
   发表时间:2008-05-26  
谢谢你,我去掉a标签后,树可以点击展开了。但我仍要想办法加上链接。
0 请登录后投票
   发表时间:2008-06-06  
想办法对span元素绑定click事件。如:$("span").click(function(){ ..... });
应该能满足你的需要,我是这样来实现的,treeview还有很多细节问题没解决,头很大。目前最致命的一个问题是,当树放在一个div里面的时候,一旦目录名称长度超过了DIV设定宽度,<span>ddd</span>会自动换行,造成树的展示被破坏。还在解决中。跟float:left这种设定方式有关系。比较头疼。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics