Php jQuery AJAX$\u在document.ready上发布帖子?
我学习PHP、jQuery和AJAX大约一周了,我学得很快。我正在建立一个新的视频网站和一个评论系统,我需要一些帮助。该站点显示视频缩略图列表,当用户单击缩略图时,jquery会自动更改该页面上的html以显示正确的视频:Php jQuery AJAX$\u在document.ready上发布帖子?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我学习PHP、jQuery和AJAX大约一周了,我学得很快。我正在建立一个新的视频网站和一个评论系统,我需要一些帮助。该站点显示视频缩略图列表,当用户单击缩略图时,jquery会自动更改该页面上的html以显示正确的视频: $(".thumbnailcontainer img").click(function() { var yt_vid = $(this).attr("id"); $("#youtube").fadeOut(300, function() {
$(".thumbnailcontainer img").click(function() {
var yt_vid = $(this).attr("id");
$("#youtube").fadeOut(300, function() {
//$("#content").append('<img src="img/design/icons/loading.gif" alt="Currently Loading" id="loading" class="loading" />');
$("#youtube").replaceWith('<object id="youtube" type="application/x-shockwave-flash" style="width:640px; height:385px; display:none;" data="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1"><param name="movie" value="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1" /><param wmode="transparent"><\/param><\/object>');
/*$("#loading").fadeOut(500, function() {
$(this).remove();
});*/
$('#youtube').fadeIn(1000);
});
这实际上是从缩略图的id属性中获取MySQL表名,将其发布到一个脚本中,该脚本返回正确的注释,并设置一个隐藏的表单值,该值将告诉表单要将注释发布到哪个表
为了确定最近添加的视频并返回正确的注释,我的想法是将一篇带有文档加载时的第一个缩略图表标识符的ajax文章发送到脚本,并将返回的注释追加,并通过ajax设置表单隐藏值
我的问题是——上述做法是个坏主意吗?也就是说,对我来说,让这么多的帖子请求转换到适当的评论似乎效率低下——这不是资源密集型的事情吗?另外,让我的数据库表名在我的缩略图的id属性中随时可见,以便让我的脚本告诉要连接到哪个数据库,这样安全吗
谢谢你的帮助和建议。这是我在这里的第一篇文章,它似乎是一个非常有用的网站。在页面加载上有一个或两个ajax请求实际上可能会加快加载时间,因为它是异步的。人们在加载时发出一些ajax请求是很常见的,这是一种让页面加载感觉更快的技术 <>你可能会考虑返回一个更标准化的数据类型。如果您以json字符串形式从注释中发回内容和元数据,您可以自己构建注释并保存大量传输(所有这些都只是重复的html标记) 一些网站采用的另一个技巧是将评论加载到视口区域。如果评论看不到(如果它们在折叠下面),那么就没有太多的理由加载它们。然后,当/如果用户向下滚动时,您可以在该点发出请求 至于flash视频的加分,您需要查看一个名为
wmode
并将其设置为transparent
。您也可以考虑使用标准的SWF注入工具,如SWFObjor(或JQuery插件版本)来将这些视频添加到页面。 < P>您可能需要使用<代码>加载> GIF < /代码>来加载评论。显示YouTube视频的脚本将立即运行,不会有任何延迟,因为它只是将HTML注入页面。视频的实际加载与页面无关
至于
load.gif
向下推视频,你需要做一个CSSposition:absolute该图像上z索引大于1的代码>。这将从页面流中取出上下文图像,并允许其覆盖视频。您可以使用顶部和左侧CSS属性将图像居中定位。确保您的图像和视频是一个具有位置:relative的容器
Dave,当你说table namecommentsID
是一个字符串,而不是一个ID?是的,变量名有点误导。该变量实际上设置为表名,然后发布到脚本中,告诉它要查看哪个表。将表名公开是安全的吗?谢谢你的回复,Alex。我将研究JSON,因为我对它一无所知。此外,在我的代码中,wmode实际上已经设置为透明,并且似乎loading.gif被覆盖在视频的.fadeOut上,但被压到了.replaceWith上。。。不确定这是由什么引起的,因为原始代码和替换的代码都有透明参数。请尝试.after()
而不是.append()
。
//Send POST data to PHP script to switch to correct comments
//Select Thumbnail's second parent's ID attr on click
var commentsID = $(this).parents("div:eq(1)").attr("id");
$.ajax({
url: 'php/comments.inc.php',
type: 'POST',
data: 'commentsID=' + commentsID,
success: function(html) {
$('#comments').html(html);
$("#db").attr("value", '' + commentsID + '');
}
});
});