Cách 1:
var runF = async (x) => {
return new Promise(resolve => {
setTimeout(() => {
console.log('ket qua ', x);
resolve();
}, 3000);
});
}
var lst = [1, 2, 3];
lst.reduce(async (pr, val) => {
await pr;
console.log('bat dau ', val);
// ĐẶT HÀM Ở ĐÂY....
await runF(val);
console.log('ket thuc ', val);
}, Promise.resolve());
CÁCH 2:
function trickDelay() {
console.log('BAT DAU');
var index = 0;
var length = lst.length;
while (index < length) {
setTimeout(function() {
console.log('WAIT...');
var viTriHienTai = index - length;
//...CALL FUNCTION HERERE
//
index++;
}, index * 2000);
index++;
}
}
Thứ Sáu, 22 tháng 11, 2019
Thứ Hai, 4 tháng 11, 2019
64 app cần cài khi cài lại máy Android
AceStream
AlReader
AnyBooks
aPhim
AutomaTag
Blokada
Box
Brave
Camscanner
Chiasenhac
ClipTV
ColorNote
Cram
Diaro
Drive
Dropbox
Facebook
Foody
FoxitPDF
Fpt play
Fx File
GoogleMap
Grab
HabitHub
HereMap
Laban Key
LichViet
LivetvLinks
Memrise
Messenger Lite
MoboPlayer
Mocha
Mocha
Momo
Moon Reader
Mx player
Nhaccuatui
OALD
Outlook
Phonograph
Photos
QuickPic
Shazam
Shopee
Skype
Slack
Snapseed
Sofascore
SoloLearn
SoptoHttp
Spotify
Telegram
TFlat
Tiki
Todoist
Translate
UnitConverter
ViettelPay
WPS Office
Xiami
Youtube
Zalo
ZingMp3
ZingTV
AlReader
AnyBooks
aPhim
AutomaTag
Blokada
Box
Brave
Camscanner
Chiasenhac
ClipTV
ColorNote
Cram
Diaro
Drive
Dropbox
Foody
FoxitPDF
Fpt play
Fx File
GoogleMap
Grab
HabitHub
HereMap
Laban Key
LichViet
LivetvLinks
Memrise
Messenger Lite
MoboPlayer
Mocha
Mocha
Momo
Moon Reader
Mx player
Nhaccuatui
OALD
Outlook
Phonograph
Photos
QuickPic
Shazam
Shopee
Skype
Slack
Snapseed
Sofascore
SoloLearn
SoptoHttp
Spotify
Telegram
TFlat
Tiki
Todoist
Translate
UnitConverter
ViettelPay
WPS Office
Xiami
Youtube
Zalo
ZingMp3
ZingTV
Thứ Sáu, 1 tháng 11, 2019
Chặn quảng cáo in-app ios/android
https://tinhte.vn/threads/huong-dan-chan-quang-cao-trong-ung-dung-bang-surge-adguard-pro-quantumult-va-adblock.2844988/
https://github.com/bigdargon/hostsVN/wiki/Opt-out
https://github.com/bigdargon/hostsVN/wiki/Adguard-Pro
Link file Host: https://app.box.com/s/5xebu3doftu21mtbjkqmpd0ywdt7wark
Bật đúng như hình là đã thành công
Bước 2: Nhấn vào dòng
Bước 3: Nhấn
Bước 4: Trở về mục
Bước 5: Bước này nhằm kiểm tra lại bạn đã reset thành công, tải apps đính kèm bên dưới để thực hiện kiểm tra
Tải ứng dụng: https://itunes.apple.com/app/my-tune-device/id1100377074?mt=8
Tiếp tục đến các bài hướng dẫn cài đặt
Bước 2: Nhấn chọn
https://github.com/bigdargon/hostsVN/wiki/Opt-out
https://github.com/bigdargon/hostsVN/wiki/Adguard-Pro
Link file Host: https://app.box.com/s/5xebu3doftu21mtbjkqmpd0ywdt7wark
Opt out
BigDargon edited this page on 29 Jun
·
7 revisions
Opt-out là gì?
-
Bạn vô tình click vào một quảng cáo trên một trang web nào đó có thể
khiến bạn mệt mỏi khi liên tục bị “bám đuôi” theo bất kì trang web nào?
Thậm chí nhiều lúc quảng cáo đó chẳng liên quan gì đến thói quen hay nhu
cầu lướt web của bạn? Cảm thấy phiền phức và muốn cắt đuôi với quảng
cáo?
-
Opt-Out là khái niệm cho các nhà quảng cáo biết rằng "tôi không muốn cá nhân hóa quảng cáo đối với tôi".
iOS
Bước 1: VàoSettings
(Cài đặt) của thiết bị > Chọn Privacy
(Quyền riêng tư) > Chọn Advertising
(Quảng cáo) > Bật Limit Ad Tracking
(Giới hạn theo dõi quảng cáo)Bật đúng như hình là đã thành công
Bước 2: Nhấn vào dòng
Reset Advertising Identifier...
(Đặt lại mã định danh quảng cáo...)Bước 3: Nhấn
Reset Identifier
(Đặt lại mã định danh) > Sau đó lặp lại Bước 2
và Bước 3
khoảng 2-3 lần, điều này nhằm chắc chắn hệ thống đã thực hiện resetBước 4: Trở về mục
Privacy
(Riêng tư) > Chọn Location Services
(Dịch vụ định vị) > Chọn tiếp System Services
(Dịch vụ hệ thống) > Tắt dòng Location-Based Apple Ads
(Apple Ads dựa trên vị trí)Bước 5: Bước này nhằm kiểm tra lại bạn đã reset thành công, tải apps đính kèm bên dưới để thực hiện kiểm tra
Tải ứng dụng: https://itunes.apple.com/app/my-tune-device/id1100377074?mt=8
- Nếu ứng dụng xuất hiện dòng
Ad-Tracking Limit
là bạn đã thực hiện thành công
- Nếu ứng dụng xuất hiện dãy ID như hình là bạn đã thực hiện không thành công là phải thực hiện lại từ
Bước 1
đếnBước 3
Tiếp tục đến các bài hướng dẫn cài đặt
- Surge - Hướng dẫn cài đặt
- Adguard Pro - Hướng dẫn cài đặt
- Quantumult - Hướng dẫn cài đặt
- Adblock - Hướng dẫn cài đặt
PC
Bước 1: Truy cập vào myaccount.google.com > Đăng nhập tài khoản Google của mình. Hoặc nhấn trái chuột vào góc vuông trên bên phải màn hình, chọnMy Account
(Tài khoản của tôi) và tiến hành đăng nhập tài khoản Google.Bước 2: Nhấn chọn
Ad Settings
(Cài đặt quảng cáo) ở vùng Personal info and Privacy
(Thông tin cá nhân và bảo mật) trong giao diện quản lý tài khoản của Google > Nhấn Manage ads settings
(Quản lý cài đặt quảng cáo) > Trượt thanh kích hoạt của tùy chọn Ads Personalization
(Cá nhân hóa quảng cáo) > Nhấn Turn Off
(Tắt) để hoàn tất vô hiệu hóa quảng cáo cá nhân.Android
Chỉ cần vàoGoogle Settings
(Cài đặt Google) > Ads
(Quảng cáo) > Trượt thanh kích hoạt của tùy chọn Opt out of Ads Personalization
(Tắt cá nhân hóa quảng cáo) là hoàn tất. Từ bây giờ, một số khu vực
trên trang web sẽ được để trống hoặc chuyển sang hiển thị những nội dung
quảng cáo khác với tần suất ít hơn thay vì hiển thị hàng loạt như trước
kia.
Copyright © BigDargon.
Lưu ý:
Bước 2: Chọn
Bước 3: Đặt tên tùy chọn vào trường
Và đợi một lát để ứng dụng tải tập tin
Bước 4: Adguard hiện như hình là đã thêm thành công
Bước 6: Chọn
Bước 7: iOS chuyển sang mục VPN để tiến hành thêm VPN, sau khi hoàn tất iOS sẽ chuyển trở về Adguard Pro
Bước 8: Sau khi trở về ứng dụng, bật tại mục
Bước 8.1: Sau khi trở lại màn hình chính của ứng dụng, chọn
Vì vậy, không cần sử dụng thêm bộ lọc cài sẵn của Adguard và hãy xoá bộ lọc Adguard cài sẵn (nếu đã thêm vào trước đây).
Lý do:
Bước 13: Kế tiếp trở lại ứng dụng muốn báo lỗi, thực hiện thao tác và chụp ảnh màn hình lỗi để đính kèm khi báo lỗi. Sau đó trở về ứng dụng Adguard Pro và chụp phần log tô màu đỏ như hình
Màu
Bước 14: Đến địa chỉ https://github.com/bigdargon/hostsVN/issues để tiến hành báo lỗi, bạn ghi càng chi tiết càng tốt để quá trình xử lý lỗi được nhanh hơn!
Bước 2: Chọn
Bước 3: Với các bộ lọc mặc định đã được bật, chỉ cần bật thêm 4 bộ lọc
Ứng dụng hiển thị như hình là đã hoàn tất
Bước 5: Vào phần cài đặt của iOS, chọn
Bước 6: Tại tab
Bước 7: Bật
Adguard Pro
BigDargon edited this page on 16 Sep
·
25 revisions
Bài viết dưới đây hướng dẫn cách chặn quảng cáo trong ứng dụng và Safari trên hệ điều hành iOS bằng Adguard Pro
Phần I: VPN
Phần I: VPN
- Giới thiệu
- Chuẩn bị
- Thêm danh sách chặn
- Bật VPN của Adguard Pro
- Cập nhật danh sách
- Adguard Pro v1
- Báo lỗi
Phần I: VPN
Giới thiệu
Tải ứng dụng https://itunes.apple.com/app/apple-store/id1126386264?mt=8Lưu ý:
- Đây là ứng dụng trả phí, bạn sẽ phải tốn
45.000 VND
để tải ứng dụng. - VPN sẽ tự động bật sau mỗi lần khởi động lại thiết bị, bạn không cần phải vào ứng dụng bật thủ công trở lại.
Chuẩn bị
Trước khi bắt đầu cài đặt, bạn cần phải thực hiện Opt-out để giới hạn quảng cáo trên thiết bị của bạn. Thực hiện theo bài viết hướng dẫn Opt-out này.Thêm danh sách chặn
Bước 1: Sau khi tải ứng dụng, chọnPrivacy Setting
Bước 2: Chọn
Add Subscription
Bước 3: Đặt tên tùy chọn vào trường
Name
, sau đó điền địa chỉ https://raw.githubusercontent.com/bigdargon/hostsVN/master/filters/adservers-all.txt vào trường URL
và nhấn nút Done
Và đợi một lát để ứng dụng tải tập tin
hosts
vàoBước 4: Adguard hiện như hình là đã thêm thành công
Bật VPN của Adguard Pro
Bước 5: Sau đã thêm danh sách vào ứng dụng, bật công tắc tại dòngStatus
như hìnhBước 6: Chọn
Allow
hoặc Cho phép
tại popup hiện lên để tiến hành cho phép ứng dụng thêm VPNBước 7: iOS chuyển sang mục VPN để tiến hành thêm VPN, sau khi hoàn tất iOS sẽ chuyển trở về Adguard Pro
Bước 8: Sau khi trở về ứng dụng, bật tại mục
Status
như hình là thành côngBước 8.1: Sau khi trở lại màn hình chính của ứng dụng, chọn
Advanced Settings
> bật Restart when Network Changes
như hình để VPN
tự khởi động mỗi khi thiết bị đổi mạng truy cậpBộ lọc Adguard cài sẵn
Hiện tạihostsVN
đã hỗ trợ từ định dạng hosts sang định dạng rule để tối giản bộ lọc và tương thích hoàn toàn với Adguard Pro
nhằm giảm tối đa bộ nhớ RAM cho tiến trình VPN khi hoạt động.Vì vậy, không cần sử dụng thêm bộ lọc cài sẵn của Adguard và hãy xoá bộ lọc Adguard cài sẵn (nếu đã thêm vào trước đây).
Lý do:
-
Thứ nhất, bộ lọc Adguard loại bỏ chặn các tên miền như
www.googleadservices.com
,pagead.l.doubleclick.net
,googleadapis.l.google.com
,... do sử dụng danh sách ở cấp độ DNS nên khi sử dụng Adguard DNS ở một số máy hiển thị kết quả tìm kiếm có quảng cáo tài trợ sẽ không nhấn vào được.
-
Thứ hai, bộ lọc Adguard có dòng loại trừ
@@||www.googleadservices.com^|
, vì vậy khi thêm cùng lúc 2 bộ lọc sẽ loại trừ luôn cả hostsVN mà các tên miền kể trên đều có chứa quảng cáo và theo dõi người dùng.
-
Thứ ba, bộ lọc Adguard cài sẵn hiện tại đã hơn 30.000 rules, nhiều
rules không cần thiết do danh sách Adguard dùng để chặn toàn cầu còn
hostsVN chỉ chặn một số trang có truy cập từ Việt Nam.
Cập nhật danh sách
Nếu iOS của bạn có bật tính năngBackground App Refresh
ứng dụng Adguard Pro sẽ tự động cập nhật định kỳ. Nếu tính năng này tắt, thực hiện theo Bước 1
và chọn Check for Updates
Adguard Pro v1
Một số vẫn còn sử dụng phiên bản cũ v1.2.1, copy danh sách tên miền từ địa chỉ https://raw.githubusercontent.com/bigdargon/hostsVN/master/filters/adservers-all.txt rồi dán vào mụcBlacklist
là được. Nhưng khuyến cáo bạn nên sử dụng phiên bản v2 do v2 đã hỗ trợ tính năng tải bộ lọc khác từ bên ngoài (v1 chỉ sử dụng bộ lọc mặc định của Adguard) và hỗ trợ cập nhật từ danh sách có sẵn không cần phải copy.Báo lỗi
Trong quá trình sử dụng, trong danh sách tên miền chặn có thể dẫn đến lỗi khi sử dụng một số phần mềm khác. Theo các bước sau để bật nhật ký chặn của ứng dụng để báo lỗi tại đây https://github.com/bigdargon/hostsVN/issuesBước 12: Tại màn hình chính, nhấn vào vị trí được đánh dấu trên hình
Bước 13: Kế tiếp trở lại ứng dụng muốn báo lỗi, thực hiện thao tác và chụp ảnh màn hình lỗi để đính kèm khi báo lỗi. Sau đó trở về ứng dụng Adguard Pro và chụp phần log tô màu đỏ như hình
Màu
xanh
có nghĩa là tên miền được đưa vào danh sách loại từ, màu đỏ
là đã bị chặn và màu vàng
là ứng dụng chỉ đánh dấu Tracker (không chặn). Log chỉ có ý nghĩa theo dõi chứ không gây ảnh hưởng gì.Bước 14: Đến địa chỉ https://github.com/bigdargon/hostsVN/issues để tiến hành báo lỗi, bạn ghi càng chi tiết càng tốt để quá trình xử lý lỗi được nhanh hơn!
Phần II: Safari
Bật bộ lọc
Bước 1: Tại màn hình chính chọnFilters
Bước 2: Chọn
Edit
tại giao diện kết tiếpBước 3: Với các bộ lọc mặc định đã được bật, chỉ cần bật thêm 4 bộ lọc
AdGuard Annoyances filter
(Chặn bớt popup thông báo không cần thiết), Adblock Warning Removal list
(Chặn cảnh báo khi bạn dùng Adblock), Anti-Facebook List
(chặn theo dõi Facebook) và ABPVN list
(Bộ lọc cho các trang của VN) nữa là đủ
Nếu bạn muốn quảng cáo hữu ích được hiển thị nhằm giúp họ có khoản
doanh thu từ quảng cáo để duy trì trang web, bạn có thể bật thêm bộ lọc Filter unblocking search ads and self-promotion
. Bạn muốn chặn hoàn toàn thì không cần bật bộ lọc này!
Bước 4: Đợi một lát để ứng dụng để tải vềỨng dụng hiển thị như hình là đã hoàn tất
Theo kinh nghiệm cá nhân của mình, sử dụng 8 bộ lọc này là sạch sẽ hoàn toàn quảng cáo khi dùng Safari
để lướt web, xem phim, nghe nhạc,...
Kích hoạt bộ lọc
Sau khi bật bộ lọc hoàn tất, bạn cần phải kích hoạt bộ lọc trênSafari
mới có hiệu lựcBước 5: Vào phần cài đặt của iOS, chọn
Safari
Bước 6: Tại tab
GENARAL
(CÀI ĐẶT CHUNG
), chọn Content Blockers
(Trình chặn nội dung
)Bước 7: Bật
Adguard Pro
tại tab ALLOW THESE CONTENT BLOCKERS:
(CHO PHÉP TRÌNH CHẶN NỘI DUNG SAU:
)Cập nhật bộ lọc
Bước 8: Nếu bạn bật tính năngBackground App Refresh
của iOS thì ứng dụng sẽ tự động cập nhật, hoặc chọn Check for Updates
để cập nhật thủ công
Copyright © BigDargon.
Regex tìm link trong string javascript
var pattern = /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/[^ );]*)?/gm;
CODE DEMO:
function addTagLink(contentAnswerItem) {
//pattern url
var pattern = /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/[^ );]*)?/gm;
//xử lý add tag <a> link
var listMatch = contentAnswerItem.match(pattern);
if (listMatch != null && listMatch.length > 0) {
$.each(listMatch, function (index, value) {
contentAnswerItem = contentAnswerItem.replace(value, '<a class="msg-link" target="_blank" href="' + value + '">' + value + '</a> ');
});
}
//insert message tag
$('.msg-insert').append("<div class='msg-receive'>" + contentAnswerItem + "</div>");
}
CODE DEMO:
function addTagLink(contentAnswerItem) {
//pattern url
var pattern = /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/[^ );]*)?/gm;
//xử lý add tag <a> link
var listMatch = contentAnswerItem.match(pattern);
if (listMatch != null && listMatch.length > 0) {
$.each(listMatch, function (index, value) {
contentAnswerItem = contentAnswerItem.replace(value, '<a class="msg-link" target="_blank" href="' + value + '">' + value + '</a> ');
});
}
//insert message tag
$('.msg-insert').append("<div class='msg-receive'>" + contentAnswerItem + "</div>");
}
Đăng ký:
Bài đăng (Atom)