我有一个静态的javascript函数,可以采用1,2或3个参数:
function getData(id, parameters, callback) //parameters (associative array) and callback (function) are optional
Run Code Online (Sandbox Code Playgroud)
我知道我总是可以测试给定参数是否未定义,但我怎么知道传递的是参数还是回调?
这样做的最佳方法是什么?
可以传递的内容示例:
1:
getData('offers');
Run Code Online (Sandbox Code Playgroud)
2:
var array = new Array();
array['type']='lalal';
getData('offers',array);
Run Code Online (Sandbox Code Playgroud)
3:
var foo = function (){...}
getData('offers',foo);
Run Code Online (Sandbox Code Playgroud)
4:
getData('offers',array,foo);
Run Code Online (Sandbox Code Playgroud) 我已经阅读了W3C的页面,但它对我来说仍然含糊不清.是role属性的澄清代码目的是什么?或者它会被一些浏览器或蜘蛛解释?
它可以用作使用一些JavaScript库的DOM选择器(我这么认为,因为id属性必须是唯一的,这可以用来识别页面上的多个资源)?
我正在使用PHP脚本来提供文件.我希望能够304在我的http响应中发送一个未修改的标头,如果该文件自客户端上次下载以来没有更改.这似乎是Apache(和大多数其他Web服务器)的一个功能,但我不知道如何通过PHP实现它.
我听说过使用过$_SERVER['HTTP_IF_MODIFIED_SINCE'],但是这个变量似乎没有出现在我的$_SERVER超级数组中.
我的问题不是如何返回304标题,而是如何知道应该返回标题.
编辑:问题是我$_SERVER['HTTP_IF_MODIFIED_SINCE']没有设置.这是我.htaccess文件的内容:
ExpiresActive On
ExpiresByType image/jpeg "modification plus 1 month"
ExpiresByType image/png "modification plus 1 month"
ExpiresByType image/gif "modification plus 1 month"
Header append Cache-Control: "must-revalidate"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(controller\.php)
RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php/$1
</IfModule>
Run Code Online (Sandbox Code Playgroud)
HTTP_IF_MODIFIED_SINCE仍然没有出现在$_SERVER超级阵列中.
如果文件上传到服务器,有没有办法使用PHP,以确保它实际上是一张图片,而不仅仅是一个.jpg或.gif扩展名的文件?
这可能是一个愚蠢的问题,但我在谷歌搜索时没有找到答案.
目前,我将来自someFileName.html的请求映射到servlet,然后使用web.xml中的servlet映射将其转发到someFileName.jsp.我想避免这种情况,只需配置我的应用程序服务器,以便解析和执行html文件,就像它们是JSP一样(这样可以在HTML中使用自定义标记和EL).奖励答案,允许任何扩展映射到JSP处理器.
我使用Tomcat,但我希望该解决方案可以移植到其他容器,如Glassfish.
我有以下型号:
#order/model.coffee
Order = DS.Model.extend {
line_items: DS.hasMany 'product', {async: true}
}
Run Code Online (Sandbox Code Playgroud)
在某些时候,我想将一些产品添加到订单中.我发现我只能添加一次产品,再添加相同的产品不起作用:
#product/route.coffee
...
actions:
# Not actually my code but illustrates the problem
addToCart: (product1, product2)->
order = @modelFor 'order'
console.log order.get('line_items.length') # prints 0
order.get('line_items').pushObject product1
console.log order.get('line_items.length') # prints 1
order.get('line_items').pushObject product2
console.log order.get('line_items.length') # prints 2
order.get('line_items').pushObject product1
console.log order.get('line_items.length') # prints 2
order.get('line_items').pushObject product2
console.log order.get('line_items.length') # prints 2
...
Run Code Online (Sandbox Code Playgroud)
问题是用户可能不止一次需要单个项目.表示该方法的最简单方法是使数组具有重复条目.看来Ember并没有让我为关系这样做.如何在关系中多次添加模型?
您是否尝试过单页面Web应用程序,即浏览器只有"GETs"一页形成服务器,其余部分由客户端javascript代码处理(这样一个"应用程序页面"的一个很好的例子是Gmail)?
对于更简单的应用程序(例如博客和CMS),采用这种方法的一些专业人员和合作伙伴是什么?
你如何设计这样的应用程序?
编辑:如响应中所提到的,难以处理的是处理后退按钮,刷新按钮,书签/复制URL.后者可以使用location.hash来解决,关于剩下的两个问题的任何线索?
说我有以下代码:
var album = new MyObject('album');
Run Code Online (Sandbox Code Playgroud)
假设在构造对象时,通过AJAX加载一组仅与专辑相关的属性.是否可以创建一个Album类,以便稍后我可以这样做:
var anotherAlbum = new Album();
Run Code Online (Sandbox Code Playgroud)
该Album构造函数将自动设置特有的专辑对象的属性,立足于打造什么时候加载MyObject('album')
我试图用构造函数(来自Ektorp库)扩展以下类:
public class CouchDbRepositorySupport<T extends CouchDbDocument> implements GenericRepository<T> {
...
protected CouchDbRepositorySupport(Class<T> type, CouchDbConnector db) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是我的实现:
public class OrderRepository extends CouchDbRepositorySupport<Order<MenuItem>> {
public OrderRepository(CouchDbConnector db) {
super(Order<MenuItem>.class, db);
Run Code Online (Sandbox Code Playgroud)
问题出在Order<MenuItem>.class零件上.Java编译器告诉我:
Syntax error on token ">", void expected after this
Run Code Online (Sandbox Code Playgroud)
我试着用(Order<MenuItem>).class,Order.class并new Order<MenuItem>().getClass()没有更好的运气.
我该怎么做才能检索泛型类的.class属性?
javascript ×6
java ×2
php ×2
attributes ×1
caching ×1
class ×1
dynamic ×1
ektorp ×1
ember-data ×1
ember.js ×1
generics ×1
glassfish ×1
html ×1
http ×1
http-headers ×1
image ×1
java-ee ×1
jsp ×1
security ×1
tomcat ×1
validation ×1
xhtml ×1