您好我只想知道动态创建html的最佳做法是什么。我可以用两种方式做到这一点
直接PHP
<div id='id-here'>
<?php
$user->id = $_GET['id'];
$user->displayUserInformation( );
?>
</div>
jQuery ajax(在页面加载时调用js脚本)
$.ajax({
type: 'GET',
url: 'inc/user_information.php',
data: 'user_id=user_id', //assuming user_id value was already set.
success: function(html)
{
$('#user_information').empty().html(html);
}
});
注意:此代码不存在,纯粹是为了显示我的意思^^我也知道jQuery加载,但更喜欢使用jQuery ajax来复杂的东西。
谢谢!
答案 0 :(得分:1)
我不担心哪个更快......差异可能可以忽略不计。但请记住,有些用户确实关闭了JavaScript ...如果你想支持这些用户,那么在PHP中花费额外的精力是值得的。
我的规则是如果可以在服务器上完成,那就去做吧。然后,您可以绝对确定所有用户的结果。
答案 1 :(得分:1)
PHP方法肯定更可靠,因为它不需要客户端中的javascript。对于在页面生命周期中或预期用户会话期间不期望的信息,它也更有意义。我不认为在页面视图期间用户的信息可能会发生这么大的变化。
但是,如果有一些数据需要更改,比如一个帖子计数或其他什么,那么使用PHP设置初始值,然后使用ajax仅在值实际更改时更新它。
答案 2 :(得分:1)
在您的示例中,如果您显示这样的用户信息,方法1将不需要从服务器获取另一个数据,如示例2所示(总共2个HTTP请求,原始网页为1,ajax为1),因此它是更快。
通常,在这样的页面内生成静态数据(在示例1中)与AJAX不同,后者向用户提供内容,并且仅使用AJAX使用新数据更新而不更新整个页面的内容。
也许你的意思是:数据应该与原始网页一起提供,还是应该留空,然后使用AJAX获取数据来显示它。通常最好先提供数据,而不是让用户等待另一次访问服务器以查看数据。
答案 3 :(得分:1)
你弄错了,第一个不是'动态创建的html',用户发送了一个请求,PHP处理它,并返回HTML,你的浏览器呈现它
第二个是您的浏览器已加载HTML,并且您尝试使用jquery来模拟第一个相同进程的另一个请求
答案 4 :(得分:1)
我相信从PHP加载静态加载会更好,更可靠。但是,从AJAX加载会将结果推送一次,而不是静态加载,数据将按部分加载......
答案 5 :(得分:0)
沿着相同的路线,这在php文件中更快。对于SEO和“最佳实践”而言,这比实际用户体验更多。我正在使用wordpress,我正在使用php文件。大多数是php,但我在文件中有四行html。一切都完全一样。我可以用php循环遍历四行,或者复制并粘贴四行html。我不希望改变代码,所以php似乎没有任何其他好处。
这是我的代码: HTML版本(主要是)
<img src="<?php echo get_bloginfo('template_directory').'/images/bracket.png';?>" class="bracket" />
<img src="<?php echo get_bloginfo('template_directory').'/images/bracket.png';?>" class="bracket" />
<img src="<?php echo get_bloginfo('template_directory').'/images/bracket.png';?>" class="bracket" />
<img src="<?php echo get_bloginfo('template_directory').'/images/bracket.png';?>" class="bracket" />
或者php:
for($i=0;$i++;$i<4){ ?> //start loop, 4x
<img src="<?php echo get_bloginfo('template_directory').'/images/bracket.png';?>" />
//Image path using php
<?php } ?> // end loop
感谢所有人!