我已经读过Luke WROBLEWSKI的书"Mobile first"以及关于该主题的许多其他读物.我是一名网络开发人员,现在我确信"移动优先"或"渐进增强"是最佳选择.
现在我正在寻找一个实现这一目标的框架.
JQuery移动annonce他们是"移动第一"但我在某些日子里尝试过,现在我倾向于说"不是不是".你不能把它与其他框架混合在一起; 它确实可以保留DOM中的所有页面(使用ajax强制加载),这样就不会让我的生活更轻松.尝试使用它来逐步增强和完成桌面版本而不卸载它,似乎是不可能的.我的意思是你不想在桌面电脑上放置大按钮,所以我想我只需要删除框架的js和css,这听起来很奇怪.我甚至不知道是否可能.
JQuery mobile看起来像一个框架,可以实现您网站的专用移动网络版本,其外观和感觉不仅仅是移动的第一个网站.
所以请有人告诉我我错在哪里:*jQuery mobile真的是"移动优先"吗?*我可以使用jquery mobile进行渐进增强(使用桌面作为最后一个目标)吗?如果是,请告诉我如何.
以下是相应的页面,告诉jquerymobile首先是移动设备:http://view.jquerymobile.com/1.3.0/docs/intro/#ProgressiveEnhancement
我也尝试了zurb的基础,它运作良好,但没有提供足够的小部件或工具来提供漂亮的mobiel UI.混合两者将是重点,但它需要很多工作(CSS冲突+可能是JS冲突),我甚至不知道它是否可能.
有关如何在移动第一个上下文中使用jquery mobile的任何建议都将受到欢迎!
我习惯通过在portal_skin下覆盖base_edit.cpt文件在Plone 3下实现这一点,并使列为空:
<metal:head fill-slot="column_one_slot"></metal:head>
<metal:head fill-slot="column_two_slot"></metal:head>
Run Code Online (Sandbox Code Playgroud)
我试图用Plone4实现这一点,结果很奇怪:我有两个空列,编辑模式不会拉伸(保持在页面中间).
我想知道每个解决方案,只保留最好的解决方案"关闭每个匿名用户的网站".匿名用户应该只有登录表单.
现有方式:
还有其他解决方案吗?什么是最好的?
注意:我在尝试使用zope安全性时遇到问题,即使登录表单无法访问,因此请详细说明您实现此目的的方法.
我正在尝试制作一个在上下文之外存储值的表单。存储已完成并且运行良好,但现在我希望更新方法在渲染过程中填充表单。所以我以这种方式重写 Form 类的更新方法:
def update(self):
super(ConfigurationForm,self).update()
form = self.request.form
if not form:
#We are on a rendering process
provider = self.getProvider()
settings = provider.get()
#TODO: update widget values !?
Run Code Online (Sandbox Code Playgroud)
settings 是一个字典,其中键等于接口字段的名称。
所以我尝试了很多方法来更新小部件值:
实现这一目标的好方法是什么?(支持所有领域?)
这是开发人员的常见情况.您希望为需要存储数据的网站的每种内容类型添加功能.它是一种元数据,而不是配置数据.
我看到两个解决方案:
我真的不知道为什么,但是从Plone2.5开始使用zope.annotation很好,现在它似乎不是存储额外数据的首选方式.例如,plone.uuid使用setattr存储唯一ID.
我正在尝试在expressjs app(nodejs)中使用sqlite3
我想创建一个从select语句返回所有结果的函数.该功能将由一条路线调用
var queryGetAll = 'SELECT id, title, description, modified, lat, lng, zoom FROM maps';
function Manager(){
this.db = null;
this.getAll = function(){
var all = [];
this.db.all(queryGetAll, function(err, rows){
if (err){
throw err;
}
all.push.apply(all, rows);
});
return all;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道nodejs是异步的,所以它意味着在查询结束之前调用return.但我没有找到关于如何使用sqlite的例子.
我正在尝试使用sqlite3的promise.这是我的源代码的一部分:
this.deleteTag = function(tag, project){
var db = this.db;
if (project){
return q.nfcall(db.run, "DELETE FROM tag2project WHERE tag = ? AND project = ?",
[tag.id, project.id]);
}else{
return q.all([
q.nfcall(db.run, "DELETE FROM tag2project WHERE tag = ?", [tag.id]),
q.nfcall(db.run, "DELETE FROM tags WHERE id = ?", [tag.id])
]);
}
};
Run Code Online (Sandbox Code Playgroud)
但那些承诺只会输入.fail,其中错误是:
[TypeError: Database object expected]
Run Code Online (Sandbox Code Playgroud)
搜索此错误只能让我看到sqlite本身的源代码https://github.com/joyent/smartos-live/blob/master/src/node-sqlite3/src/statement.cc#L91
使用简单回调的旧版本正在运行,因此this.db或sql查询中没有错误.