legend2---开发日志5(如何解决插件的延迟问题,比如vue)
一、总结
一句话总结:元素可以先设置为隐藏,这样就不会让用户看到延迟的问题,然后等加载完再显示,
元素先设置为隐藏 加载完再显示
1、thinkphp解决各种方式(post传值,链接传值,get传值)传值统一的简单方式?
读取主要 特判补充
读取最主要的哪一种,然后进行特判补充,从而方便下面的统一编码
$dataIn=input('get.'); //步骤一:因为也用a标签传值过来,所以dataIn可能取不到这部分值
if(input('xiulian_type')!=null&&!isset($dataIn['xiulian_type'])) $dataIn['xiulian_type']=input('xiulian_type');
if(input('blog_recommend')!=null&&!isset($dataIn['blog_recommend'])) $dataIn['blog_recommend']=input('blog_recommend');
if(input('finished_question')!=null&&!isset($dataIn['finished_question'])) $dataIn['finished_question']=input('finished_question');
2、php变量转js变量时候的注意事项是什么?
字符串变量加引号 打印变量
如果是字符串变量必须加引号表示是字符串,而且最好打印变量,防止错误
question_space_type="{$question_list['info']['question_space_type']}";
3、php传值给js变量比较好的策略是什么?
用json 传过去的数据做全局变量
用json,整数组传,而且这些变量有时候传成全局变量比较方便,分开写的好处是可加注释,如下
//===========题目列表信息全局变量
//做题目对应的url
url="{:url('index/blog.do_question/index')}";
//显示的题目的编号
showQuestionNum={$question_list['info']['now_question_num']};
//题目总数
totalQuestionNum={$question_list['info']['question_num']};
//博客题目类型-question_space_type(推荐,全库,一日,多日,收藏)
question_space_type="{$question_list['info']['question_space_type']}";
//修炼类别-xiulian_type(灵气,心境,功法,炼丹,炼器,炼符,阵法,傀儡,种植,育兽,占卜)
xiulian_type={$question_list['info']['xiulian_type']};
//博客题目顺序方式-question_order_type(推荐,顺序,随机,作对最少)也是博客题目类型对应的值,因为键值对可以一次传两个值
question_order_type={$question_list['info']['question_order_type']};
//博客对应的日期-question_date
question_date="{$question_list['info']['question_date']}";
//英雄的id-hero_id-当为英雄修炼而不是宗门修炼的时候,为0表示是宗门修炼
hero_id="{$question_list['info']['hero_id']}";
4、页面端的函数是否有存在的意义?
没有 其实完全可以被替代 处理好数据后再传页面
页面上的php函数肯定是可以用模型中的php函数代替,也就是处理好了数据再传到页面,让页面无需做php的处理
5、写注释的好的方式?
[变量]-变量或者核心部分用显眼的中括号括起来 分步骤写-用显眼的中文
变量用中括号括起来,步骤用汉字步骤表示
//步骤五:根据【修炼类型的经验值数值】和【当前等级经验值上限】获取【经验值的百分比】
6、网页版应用如何减少服务器负载?
计算任务扔给客户端 核心计算仍然要在服务器上
计算任务可以都扔给客户端,服务器没必要做复杂的计算,可以只负责传入传出数据就好
7、html中用内联的display: none;会出现标签延迟加载的情况么,用js控制的显示隐藏会出现延迟么?
内联的不会 js控制的会
用js出现延迟加载的情况是因为要加载完html才运行js,所以会有延迟,而内联标签和html的加载应该是同时,所以不会,
8、thinkphp框架配合vue无延迟加载的策略是什么?
thinkphp改变display属性 vue通过v-show改变display属性 display属性做中介 加载完再显示
thinkphp改变display属性,vue通过v-show来控制的display是否为none,而且可以选择加载完再显示,这样效果好很多
<div style="color: red;{if condition='$vo.bq_collected<=0'}display: none;{/if}">
<i class="fa fa-fw fa-heart"></i>
</div>
<div style="{if condition='$vo.bq_collected>0'}display: none;{/if}">
<i class="fa fa-fw fa-heart-o"></i>
</div>
9、如何解决vue的延迟问题,不让用户看到这种延迟(比如底部经验条)?
元素先设置为隐藏 加载完再显示
元素可以先设置为隐藏,这样就不会让用户看到延迟的问题,然后等加载完再显示,
10、如何让标签加载完再显示(比如当加载文件多时去掉vue的延迟显示效果)?
先display:none 放在$()中 .show设置为显示
先设置display:none; 再在加载完成函数中$()添加让标签显示的class,比如bootstrap的.show
<!--底部经验固定条-->
<div style="position: fixed;bottom: 0;width: 100%;font-size: 10px;display: none;" id="bottom_exp_bar">
$(function () {
$('#bottom_exp_bar').addClass('show');
});