我正在为我们的页面(社交游戏类型)构建Facebook风格的通知系统,我现在正在研究设计这种系统的最佳方式.我对如何向用户或类似的东西推送通知感兴趣(现在甚至).我正在研究如何在服务器上构建系统(如何存储通知,存储它们的位置,如何获取它们等等).
那么......我们有一些要求:
好吧,我想的是我应该创建一些队列,我会在事件发生时存储它们.然后我会有一个后台工作(齿轮师?),它将查看该队列并根据这些事件生成通知.然后,此作业将在每个用户的数据库中存储通知(因此,如果事件影响10个用户,则会有10个单独的通知).然后,当用户打开包含通知列表的页面时,我会为他读取所有这些通知(我们考虑将此限制为100个最新通知)并将它们组合在一起然后最终显示它们.
我对这种方法的关注:
那么您如何看待我提出的解决方案和我的担忧?如果您认为我应该提及其他与此相关的内容,请发表评论.
哦,我们正在使用PHP作为我们的页面,但这不应该是我认为的一个重要因素.
我已经阅读了一些关于Bigtable和NOSQL的文章.他们避免JOIN操作非常有趣.
作为一个基本的例子,让我们采用Employee和Department表,并假设数据分布在多个表/服务器上.
只是想知道,如果数据分布在多个服务器上,我们如何进行JOIN或UNION操作?
该网站位于共享主机上.我需要密码保护单个URL.
http://www.example.com/pretty/url
Run Code Online (Sandbox Code Playgroud)
显然,这不是我想要保护的物理文件路径,它只是特定的URL.
有.htaccess的快速解决方案吗?
CSS:
.blue
{
width:200px;
height:200px;
background-color:blue;
color:#000000;
overflow:auto;
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function addChar() {
$('.blue').append('some text ');
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id='blue1' class="blue"></div><br />
<a href='javascript:void(0)' onclick='addChar()'>Add</a>
Run Code Online (Sandbox Code Playgroud)
div id='blue1'有overflow属性设置为auto.我想在发生溢出时检测溢出.
有人可以向我解释一下这里的第二行是怎么回事吗?:
var foo = function(){alert("hello?")};
(0,foo)();
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用递归搜索返回指定目录中的文件.我成功实现了这一点,但是我想添加几行代码,这些代码允许我指定我想要返回的某些扩展.
例如,只返回目录中的.jpg文件.
这是我的代码,
<?php
$it = new RecursiveDirectoryIterator("L:\folder\folder\folder");
foreach(new RecursiveIteratorIterator($it) as $file) {
echo $file . "<br/> \n";
}
?>
Run Code Online (Sandbox Code Playgroud)
请让我知道我可以添加到上面的代码来实现这一点,谢谢
我刚刚在我的一张桌子上跑了一个"PROCEDURE ANALYZE()".我有这个类型为INT的列,它只包含0到12之间的值(类别ID).MySQL说我会更好用ENUM('0','1','2',......,'12').这个类别基本上是静态的,将来不会改变,但如果他们这样做,我可以改变该列并将其添加到ENUM列表中......
那么为什么ENUM在这种情况下更好?
编辑:我最感兴趣的是这个性能方面......
即使在阅读https://github.com/cloudhead/less.js/issues/212之后,我也不明白@ import-once语句的含义.
这是一个玩具示例,使用asyncio和aiohttp从多个网站下载主页:
import asyncio
import aiohttp
sites = [
"http://google.com",
"http://reddit.com",
"http://wikipedia.com",
"http://afpy.org",
"http://httpbin.org",
"http://stackoverflow.com",
"http://reddit.com"
]
async def main(sites):
for site in sites:
download(site)
async def download(site):
response = await client.get(site)
content = await response.read()
print(site, len(content))
loop = asyncio.get_event_loop()
client = aiohttp.ClientSession(loop=loop)
content = loop.run_until_complete(main(sites))
client.close()
Run Code Online (Sandbox Code Playgroud)
如果我运行它,我得到:
RuntimeWarning: coroutine 'download' was never awaited
Run Code Online (Sandbox Code Playgroud)
但我不想等待它.
在扭曲我可以做:
for site in sites:
download(site)
Run Code Online (Sandbox Code Playgroud)
如果我没有明确地"收益"或向返回的Deferred添加回调,它只会在没有阻塞或抱怨的情况下运行.我无法访问结果,但在这种情况下我不需要它.
在JS我可以这样做:
site.forEarch(site){
donwload(site)
}
Run Code Online (Sandbox Code Playgroud)
而且,它不会阻止,也不需要我的任何部分.
我找到了办法:
async def main(sites):
await asyncio.wait([download(site) for site in sites])
Run Code Online (Sandbox Code Playgroud)
但:
我有一个canvas标签来创建一个图形.在我的每一行,我都有一个"点"来启用"鼠标悬停"并显示更多细节.
当我不向此点添加事件监听器时,一切正常.
Firebug警告我:s.addEventListener不是函数...
是否可以创建动态事件监听器?(我是Javascript的新手)
javascript ×2
.htaccess ×1
async-await ×1
bigtable ×1
canvas ×1
css ×1
file-search ×1
html5 ×1
join ×1
jquery ×1
less ×1
mysql ×1
nosql ×1
php ×1
python ×1
python-3.x ×1
sql ×1