开始使用redis作为子/ pub系统来处理新项目,以显示mysql db的结果.因此,如果有更新,我想将这些更新从mysql发布到我的网页.我的问题是,哪个选项更好?
选项1:我应该通过nodejs和socket.io完成所有这些工作吗?意思是创建连接到redis的nodejs脚本,订阅我需要监听的通道,使用nodejs中的mysql查询db for updates,如果更新发布mysql行,则通过socket.io获取连接到nodejs的html新数据并处理它以显示结果?
选项2:有一个php脚本查询mysql并使用redis-php客户端发布对该频道的任何更新?不知道还有什么需要从这里设置.我还需要在此选项中使用nodej吗?
或者我只是根据这一切是如何工作的?底线是我想通过mysql数据库向用户显示使用redis sub/pub功能的结果.
我有这个代码:
$('#page-refresh').click( function() {
$.ajax({
url: "/page1.php",
cache: false,
dataType: "html",
success: function(data) {
$('#pagelist').html(data);
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
在这段代码中,有可能在ajax成功函数中禁用#page-refresh点击5秒然后重新启用它?基本上,如果一个人点击按钮并且这个动作发生,我不希望他们再次点击并再次运行此动作5秒钟.我查看了delay()解除对此的点击,然后再次绑定它,但一旦解除绑定,它就再也不允许我点击按钮了.
我有一堆表行,如:
<tr>
<td>cell1</td>
<td>cell2</td>
<td><a href="action.php">cell3</a></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
当有人点击cell3中的链接有没有办法隐藏整个tr行?那么第二个他们点击了cell3中的那个链接整个tr是隐藏的吗?
使用jquery mobile Im使用持久性页眉和页脚.页脚导航有选项卡,当您单击选项卡时,它会通过ajax加载页面.问题是从一个页面转换到另一个页面,这是ajax加载具有特定id的div,非常慢.页面转换需要2-5秒才能完成.当我点击一个标签时,它突出显示不同的颜色,但没有任何反应,然后几秒钟后发生转换.有时,如果您单击以快速布局中断并且页脚消失.我在ipad上使用最新版本的jquery mobile进行此操作.jquery mobile真的很慢吗?等到ios5会有所不同吗?
UPDATE
这是一段代码:
<div data-role="page" id="page1">
<div data-role="header" data-position="fixed">
<h1>Page Title</h1>
<a href="#dialog" data-transition="slidedown" data-icon="check">Add</a>
</div>
<div data-role="content">
<ul data-role="listview">
<li data-role="list-divider"><span class="ui-li-count">2</span></li>
<li>
<h3>Stephen Weber</h3>
<p><strong>You've been invited to a meeting at Filament Group in Boston, MA</strong></p>
<p>Hey Stephen, if you're available at 10am tomorrow, we've got a meeting with the jQuery team.</p>
<p class="ui-li-aside"><strong>6:24</strong>PM</p>
</li>
</ul>
<div data-role="footer" class="nav-glyphish-example" data-id="myfooter" data-position="fixed">
<div data-role="navbar" class="nav-glyphish-example" data-grid="b">
<ul>
<li><a href="#page1" data-transition="reverse slide" id="chat" data-icon="custom" class="ui-btn-active ui-state-persist">Link …Run Code Online (Sandbox Code Playgroud) 使用colorbox:
http://colorpowered.com/colorbox/
Run Code Online (Sandbox Code Playgroud)
我使用它来使用colorbox中的iframe函数打开一个窗口.在弹出窗口/ iframe中我有一个表单.我想要实现的是在提交表单时我希望关闭颜色框窗口并刷新父窗口.谁能帮我这个?这是我现在使用的代码,当我手动关闭彩色框窗口时,父页面刷新,但是如何告诉colorbox弹出窗口中的页面关闭colorbox?
jQuery(document).ready(function(){
jQuery(".purchasepop").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ location.reload(true); }});
});
Run Code Online (Sandbox Code Playgroud) 我有一个node.js脚本,任何时候发生错误node.js停止运行时发生的错误.
检查node.js中错误的正确方法是什么,这样它就不会破坏脚本并导致node.js停止?
我有一个在ipad上出现的网页.我为视口添加了这个元:
<meta name="viewport" content="width=980,maximum-scale=1.0" />
Run Code Online (Sandbox Code Playgroud)
它在肖像中工作得很好,然后当ipad进入横向模式时它也可以正常工作.问题是,当我从横向回到纵向时,页面被拉伸,这意味着页面的某些部分以纵向模式离开屏幕.我必须双击屏幕才能恢复正常视图.
然后我尝试了:
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
Run Code Online (Sandbox Code Playgroud)
但是在纵向模式下它的宽度不够,当图标/文本应该只有一行时,图标/文字会换行到2行.它全部聚集起来.有什么建议?
所以我有几个月前建立的另一个项目.它目前使用jquery和ajax并每隔30秒调用一次php脚本.php脚本查询mysql并传回结果以显示.在这个应用程序中,该人员能够从数据库中添加/编辑/删除记录,当他们这样做时,数据库的结果列表需要更新他们看到的列表.到目前为止它似乎完成了这项工作,但是沿着这条道路看,数据库将变得越来越大,它需要更加实时,这意味着不仅每30秒刷新一次,而且尽可能瞬间刷新.
socket.io会解决这个问题吗?我是否只需使用socket.io和nodejs来创建服务器并发出事件来查询我的数据库并返回结果显示?然后在客户端只有一个函数,像每一秒调用服务器套接字脚本?这是使用socket.io的正确途径吗?如果我在服务器资源方面每秒运行一次,那么这个过程是否会引起关注?
在客户端使用 socketio,在服务器端使用带有 socketio 的 nodejs,我将如何将数据从客户端传递到服务器?我会在客户端使用带有 socketio 的发射函数吗?
使用javascript/jquery有没有办法将变量设置为默认值,如果函数中没有传递值?例如
function someFunction(data1,data2)
{
}
Run Code Online (Sandbox Code Playgroud)
如果data1或data 2为空,则会给出一个未定义的值.在PHP我可以做到这一点:
function somefunction(data1 = '',data2 = '')
{
}
Run Code Online (Sandbox Code Playgroud)
因此,如果没有传递变量,或者数据1或数据2,则默认为''.在JS/Jquery中,我是否必须检查是否有值并相应地设置它?
function someFunction(data1,data2)
{
if(!data1) {
data1 = '';
}
if(!data2) {
data2 = ''
}
}
Run Code Online (Sandbox Code Playgroud)
只是看起来需要做很多工作来检查变量是否为空以给它一个默认值.