我正在努力加速我的网站.Google洞察(https://developers.google.com/speed/pagespeed/insights)告诉我,一个关键问题是启用GZip压缩.
该网站的地址是http://user2.net 它基于codeigniter框架.
我已经启用了gzip压缩,并对我的.htaccess文件进行了以下更改:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
<files *.html>
SetOutputFilter DEFLATE
</files>
Run Code Online (Sandbox Code Playgroud)
我使用此工具测试了该站点:http: //www.gidnetwork.com/tools/gzip-test.php 它说gzip已启用.
我错过了什么?
在Docker主机中安装S3容器的最佳做法是什么?有没有办法透明地做到这一点?或者我是否需要使用VOLUME指令将卷装入主驱动器,然后使用CRON手动将文件备份到S3?
在Pimple 1.0中,我曾经能够像这样共享类实例:
$app['some_service'] = $app->share(function () {
return new Service();
});
Run Code Online (Sandbox Code Playgroud)
现在这似乎已被弃用,我无法找到这样做的新方法.
我正在阅读ramda文档
const madd3 = R.lift((a, b, c) => a + b + c);
madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
它看起来像一个非常有用的功能.我看不出它会是什么用例.
谢谢
该文档建议使用NestFactory.createMicroservice创建一个传输订阅应用程序。
我目前有一个基于 REST 的微服务,其中包含域逻辑和与数据库的连接。我想在该微服务上订阅 Kafka 消息。是否可以在这个单一微服务的范围内做到这一点?我在文档中看不到这一点。
这让我想知道模式是否应该是:我应该创建一个额外的微服务,NestFactory.createMicroservice它将连接到 Kafka,然后将消息分发到我的 REST API...通过 REST?这意味着其余 api 将在休息期间发生所有可能的“操作”,但间歇性微服务将根据 Kafka 的消息触发它。
如果这是真的,这是否意味着随着我的应用程序的扩展,我最终可能会为每个剩余微服务订阅一个 Kafka 微服务?或者是否会有一个订阅微服务会触发多个 REST API?或者也许......这取决于用例?
我正在构建一个应用程序,它将对远程api服务器进行大约一百万次调用.我是否可以限制连接数量,例如10?我将max套接字设置为10会这样做吗?
我试图了解这些参数的作用:
keepAlive: false,
maxSockets: 999,
maxFreeSockets: 1
Run Code Online (Sandbox Code Playgroud)
在节点http get函数中,在以下代码中:
var inputData = [];
for(i=1; i<=5000;i++){
inputData.push('number' + i);
}
var options = {
host: "localhost",
port: 80,
path: "/text.txt",
keepAlive: false,
maxSockets: 999,
maxFreeSockets: 1
}
var limit = inputData.length;
var counter = 0;
function fetchData(number){
return new Promise(function(resolve, reject){
var http = require('http');
fetch = function(resp){
var body = '';
resp.on('data',function(chunk){
body += chunk;
})
resp.on('end',function(){
console.log(resp)
resolve()
})
resp.on('error',function(err){
console.log('error');
})
}
var req = http.request(options, fetch); …Run Code Online (Sandbox Code Playgroud) 我今天看了很多例子.他们似乎建议在链中执行以下代码:
let f = () => {
return new Promise((res, rej) => {
console.log('entering function');
setTimeout(() => {
console.log('resolving');
res()
}, 2000)
});
};
Promise.resolve()
.then(f())
.then(f());
Run Code Online (Sandbox Code Playgroud)
预期产出将是:
entering function
resolving
entering function
resolving
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.输出是
entering function
entering function
resolving
resolving
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么.任何帮助都感激不尽.
我需要将所选复选框的数量限制为5.我尝试使用:禁用,如下所示:
<ul>
<li v-for="item in providers">
<input type="checkbox"
value="{{item.id}}"
id="{{item.id}}"
v-model="selected_providers"
:disabled="limit_reached"
>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
然后:
new Vue({
el: '#app',
computed:{
limit_reached: function(){
if(this.selected_providers.length > 5){
return true;
}
return false;
}
}
})
Run Code Online (Sandbox Code Playgroud)
这种工作,但当它达到5时,所有复选框都被禁用,你不能取消选中你不想要的复选框.
我也尝试用1毫秒的超时来拼接数组,这有效但感觉很难.有人可以推荐一下吗?
如何测试选择效果?我的传奇取决于选择的结果,但是每次我都只是undefined从传奇中获得。
这是我尝试过的:
在我的传奇中:
function* loadData() {
const foo = yield select((state) => {
return state.foo.value;
});
console.log('foo is :', foo);
}
Run Code Online (Sandbox Code Playgroud)
在测试中:
test.only('Data saga', t => {
const generator = loadData();
console.log(generator.next({foo: 'blah'}).value);
console.log(generator.next());
});
Run Code Online (Sandbox Code Playgroud)
但结果是foo is : undefined。我如何将数据传递到默认状态?有更好的方法吗?
在下面的代码片段中,我预计会出错,但会返回false.为什么?
foo = {}
foo <- "lel"
Run Code Online (Sandbox Code Playgroud)
返回false
当然不是在比较哪一个更大,所以它在做什么?
我可以使用ramda编写此代码吗?
const getJobs = data => anotherF('/jobs', data)
也许像
const getJobs = anotherF('/jobs', nthArg(0))
谢谢
javascript ×6
ramda.js ×2
amazon-s3 ×1
apache-kafka ×1
architecture ×1
asynchronous ×1
backup ×1
checkbox ×1
compression ×1
docker ×1
ecmascript-6 ×1
gzip ×1
nestjs ×1
node.js ×1
php ×1
pimple ×1
promise ×1
react-redux ×1
reactjs ×1
redux ×1
redux-saga ×1
saga ×1
seo ×1
silex ×1
symfony ×1
vue.js ×1