小编sod*_*sod的帖子

通过javascript检测ipad/iphone webview

如果网站在ipad safari中运行或在应用程序WebView中运行,是否有办法通过javascript进行区分?

javascript webview ipad ios

87
推荐指数
6
解决办法
8万
查看次数

使用namespace作为typescript中的类型

我已经为谷歌地图安装了类型定义,声明了这样的命名空间:

namespace google.maps {
  export class Map {
    // ...
  }

  // ...
}
Run Code Online (Sandbox Code Playgroud)

因此,如果我只是在全球范围内使用它,它的工作效果很好

const map = new google.maps.Map();
Run Code Online (Sandbox Code Playgroud)

对于单元测试,我不想全局访问API,而是注入它.但似乎我无法从类型中输入变量google.map

所以这不起作用:

function mapFactory(api: google.maps) {
    return new api.Map();
}
Run Code Online (Sandbox Code Playgroud)

任何解决方案如何使用命名空间作为类型?

typescript

20
推荐指数
1
解决办法
4208
查看次数

RxJS油门行为; 立即获得第一个价值

示例Plunkr:https://plnkr.co/edit/NZwb3ol8CbZFtSc6Q9zm p = preview

我知道rxjs有这3种节流方法(5.0 beta.4):

auditTime(),throttleTime()debounceTime()

我正在寻找的行为是默认情况下lodash执行的一个节流:

  • 1)立即给我第一个价值!
  • 2)在连续值上,保持给定延迟的值,然后发出最后出现的值
  • 3)当油门延迟到期时,返回状态(1)

从理论上讲,这应该是这样的:

inputObservable
  .do(() => cancelPreviousRequest())
  .throttleTime(500)
  .subscribe((value) => doNextRequest(value))
Run Code Online (Sandbox Code Playgroud)

  • throttleTime 如果在油门超时中发出,则永远不会给我最后一个值
  • debounceTime 不会立即触发
  • auditTime 不会立即触发

我可以结合任何rxjs方法来实现所描述的行为吗?

javascript throttling rxjs

13
推荐指数
2
解决办法
3136
查看次数

优雅的方式来初始化和扩展一个javascript数组

如果尚未启动数组,是否有一种甜蜜的方式来初始化数组?目前代码看起来像:

if (!obj) var obj = [];
obj.push({});
Run Code Online (Sandbox Code Playgroud)

酷会是这样的var obj = (obj || []).push({}),但这不起作用:-(

javascript arrays

10
推荐指数
1
解决办法
5876
查看次数

伊斯坦布尔覆盖HTML报告中的嵌套目录

来自伊斯坦布尔的HTML格式的单元测试覆盖率报告显示了项目中的每个文件夹index.html.

它实际上使目录结构变平.是否可以选择使用嵌套文件夹呈现html报告?

javascript unit-testing code-coverage istanbul test-coverage

9
推荐指数
1
解决办法
438
查看次数

强制缓存控制:在F5重新加载时通过XMLHttpRequest在Chrome中进行无缓存

我想确保通过AJAX调用请求的数据是新鲜的而不是缓存的.因此我发送标题Cache-Control: no-cache

但是,Cache-Control: max-age=0如果用户按下F5,我的Chrome版本33会覆盖此标题.

例.test.html在您的网络服务器上放置内容

<script>
    var xhr = new XMLHttpRequest;
    xhr.open('GET', 'test.html');
    xhr.setRequestHeader('Cache-Control', 'no-cache');
    xhr.send();
</script>
Run Code Online (Sandbox Code Playgroud)

在网络选项卡上的chrome调试器中,我看到了test.html AJAX调用.状态代码200.现在按F5重新加载页面.max-age:0,状态代码304 Not Modified.

Firefox显示了类似的行为.刚刚覆盖请求头的Intead将其修改为Cache-Control:无缓存,F5上的max-age = 0.

我可以压制这个吗?

javascript ajax caching google-chrome

7
推荐指数
2
解决办法
3万
查看次数

RecursiveIteratorIterator最后一个孩子

我使用RecursiveIteratorIterator迭代一个多维数组,并希望能够知道当前元素是否是它深度的最后一个子元素.我想到了这个:

$iterator = new RecursiveIteratorIterator($array,
  RecursiveIteratorIterator::SELF_FIRST);    
foreach ($iterator as $val) {
  $next = clone $iterator;
  $next->next();
  $lastChild = ($next->getDepth() < $iterator->getDepth());
}
Run Code Online (Sandbox Code Playgroud)

但RecursiveIteratorIterator表示它不可克隆.

php spl iterator loops

4
推荐指数
1
解决办法
869
查看次数

SQL ORDER BY多个字段

我有这个问题:

SELECT
  id, name
FROM
  data
ORDER BY
  FIELD(id, 4, 5, 8, 10) DESC,
  name
Run Code Online (Sandbox Code Playgroud)

Ids 4, 5, 8, 10排名靠前.到现在为止还挺好.但后来我想排序name.这不起作用.可能FIELD已经确定了具体的订单吗?我可以更改SQL,这样我仍然可以告诉SQL哪些id应该在顶部(在真/假关系中)但是按名称进行最终排序?某种枚举?

ids FIELD(id, 4, 5, 8, 10)来自另一个来源.它们表示在外源中是否有给定id的数据.

mysql sql

0
推荐指数
1
解决办法
75
查看次数